ug4
|
Scalar Lower Obstacles. More...
#include <scalar_obstacle.h>
Public Types | |
typedef TAlgebra | algebra_type |
Algebra type. | |
typedef IObstacleConstraint< TDomain, TAlgebra > | base_type |
Base class type. | |
typedef GridFunction< TDomain, TAlgebra > | function_type |
Type of grid function. | |
typedef algebra_type::matrix_type | matrix_type |
Matrix type. | |
typedef vector_type::value_type | value_type |
Value type. | |
typedef algebra_type::vector_type | vector_type |
Vector type. | |
![]() | |
typedef TAlgebra | algebra_type |
Algebra type. | |
typedef IDomainConstraint< TDomain, TAlgebra > | base_type |
Base Type. | |
typedef TDomain | domain_type |
Type of domain. | |
typedef algebra_type::matrix_type | matrix_type |
Matrix type. | |
typedef domain_type::position_type | position_type |
Type of position coordinates (e.g. position_type) | |
typedef vector_type::value_type | value_type |
Value type. | |
typedef algebra_type::vector_type | vector_type |
Vector type. | |
![]() | |
typedef TAlgebra | algebra_type |
Algebra type. | |
typedef TDomain | domain_type |
Domain Type. | |
typedef algebra_type::matrix_type | matrix_type |
Type of algebra matrix. | |
typedef algebra_type::vector_type | vector_type |
Type of algebra vector. | |
![]() | |
typedef TAlgebra | algebra_type |
Algebra type. | |
typedef algebra_type::matrix_type | matrix_type |
Type of algebra matrix. | |
typedef algebra_type::vector_type | vector_type |
Type of algebra vector. | |
Public Member Functions | |
void | adjust_defect_to_constraint (vector_type &d) |
the defect needs to be adjusted for the active indices (those indices, which are in contact) | |
void | adjust_sol_and_cor (value_type &sol_i, value_type &c_i, bool &dofIsActive, const DoFIndex &dof) |
projects the i-th index of the solution onto the admissible set and adjusts the correction | |
void | restrict_obs_values () |
restricts the obstacle values to a coarser grid in a multigrid hierarchy | |
ScalarLowerObstacle () | |
default constructor | |
ScalarLowerObstacle (const function_type &u) | |
constructor for a scalar obstacle | |
~ScalarLowerObstacle () | |
Destructor. | |
![]() | |
void | active_dofs (vector< DoFIndex > &vActiveDoFs) |
returns the vector storing the active dofs | |
void | add (number value, const char *function) |
adds a constant value as dirichlet condition for a function on subsets and on whole domain | |
void | add (number value, const char *function, const char *subsets) |
void | add (SmartPtr< UserData< MathVector< dim >, dim > > func, const char *functions) |
adds a user-defined vector as dirichlet condition for a vector-function on subsets and on whole domain | |
void | add (SmartPtr< UserData< MathVector< dim >, dim > > func, const char *functions, const char *subsets) |
void | add (SmartPtr< UserData< number, dim > > func, const char *function) |
adds a user-defined value as dirichlet condition for a function on subsets and on whole domain | |
void | add (SmartPtr< UserData< number, dim > > func, const char *function, const char *subsets) |
void | add (SmartPtr< UserData< number, dim, bool > > func, const char *function) |
adds a lua callback (cond and non-cond) | |
void | add (SmartPtr< UserData< number, dim, bool > > func, const char *function, const char *subsets) |
void | adjust_defect (vector_type &d, const vector_type &u, ConstSmartPtr< DoFDistribution > dd, int type, number time=0.0, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol=NULL, const std::vector< number > *vScaleMass=NULL, const std::vector< number > *vScaleStiff=NULL) |
sets a zero value in the defect for all dirichlet indices | |
void | adjust_jacobian (matrix_type &J, const vector_type &u, ConstSmartPtr< DoFDistribution > dd, int type, number time=0.0, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol=NULL, const number s_a0=1.0) |
sets a unity row for all dirichlet indices | |
void | adjust_linear (matrix_type &A, vector_type &b, ConstSmartPtr< DoFDistribution > dd, int type, number time=0.0) |
sets unity rows in A and dirichlet values in right-hand side b | |
virtual void | adjust_prolongation (matrix_type &P, ConstSmartPtr< DoFDistribution > ddFine, ConstSmartPtr< DoFDistribution > ddCoarse, int type, number time=0.0) |
sets constraints in prolongation | |
virtual void | adjust_restriction (matrix_type &R, ConstSmartPtr< DoFDistribution > ddCoarse, ConstSmartPtr< DoFDistribution > ddFine, int type, number time=0.0) |
sets constraints in restriction | |
void | adjust_rhs (vector_type &b, const vector_type &u, ConstSmartPtr< DoFDistribution > dd, int type, number time=0.0) |
sets the dirichlet value in the right-hand side | |
void | adjust_solution (vector_type &u, ConstSmartPtr< DoFDistribution > dd, int type, number time=0.0) |
sets the dirichlet value in the solution for all dirichlet indices | |
void | init () |
IObstacleConstraint () | |
constructor | |
IObstacleConstraint (const GridFunction< TDomain, TAlgebra > &u) | |
constructor for an obstacle defined on some subset(s) | |
bool | is_obs_dof (const DoFIndex &dof) |
checks if a given dof is in an obstacle subset | |
virtual void | preprocess () |
void | reset_active_dofs () |
resets the vector storing the active dofs | |
virtual int | type () const |
returns the type of the constraints | |
virtual | ~IObstacleConstraint () |
Destructor. | |
![]() | |
SmartPtr< ApproximationSpace< TDomain > > | approximation_space () |
returns approximation space | |
ConstSmartPtr< ApproximationSpace< TDomain > > | approximation_space () const |
returns approximation space | |
virtual SmartPtr< IErrEstData< TDomain > > | err_est_data () |
returns the pointer to the error estimator data object (or NULL) | |
bool | err_est_enabled () const |
find out whether or not a posteriori error estimation is to be performed for this disc | |
IDomainConstraint () | |
constructor | |
virtual void | set_approximation_space (SmartPtr< ApproximationSpace< TDomain > > approxSpace) |
sets the approximation space | |
void | set_ass_tuner (ConstSmartPtr< AssemblingTuner< TAlgebra > > spAssemblingTuner=NULL) |
sets the assemble adapter for the constraints | |
void | set_error_estimator (SmartPtr< IErrEstData< TDomain > > ee) |
sets the pointer to an error estimator data object (or NULL) | |
![]() | |
virtual void | adjust_correction (vector_type &c, ConstSmartPtr< DoFDistribution > dd, int type, number time=0.0) |
virtual void | adjust_error (const vector_type &u, ConstSmartPtr< DoFDistribution > dd, int type, number time=0.0, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol=SPNULL, const std::vector< number > *vScaleMass=NULL, const std::vector< number > *vScaleStiff=NULL) |
adjusts the assembled error estimator values in the attachments according to the constraint | |
virtual void | adjust_linear_residual (vector_type &d, const vector_type &u, ConstSmartPtr< DoFDistribution > dd, int type, number time=0.0) |
adjust linear residual | |
virtual void | adjust_prolongation (vector_type &uFine, GridLevel fineLvl, const vector_type &uCoarse, GridLevel coarseLvl, int type) |
sets the constraints in a solution vector | |
virtual void | adjust_restriction (vector_type &uCoarse, GridLevel coarseLvl, const vector_type &uFine, GridLevel fineLvl, int type) |
sets the constraints in a solution vector | |
virtual void | modify_solution (SmartPtr< VectorTimeSeries< vector_type > > vSolMod, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, ConstSmartPtr< DoFDistribution > dd, int type) |
modify_solution for instationary case | |
virtual void | modify_solution (vector_type &uMod, const vector_type &u, ConstSmartPtr< DoFDistribution > dd, int type) |
modifies solution vector before calling the assembling routine | |
virtual | ~IConstraint () |
virtual destructor | |
Private Attributes | |
map< DoFIndex, number > | m_mObstacleValues |
map storing the obstacle values for every obstacle dof (key) | |
vector< DoFIndex > | m_vActiveDofs |
store the dofs, which satisfy the constraints with equality | |
Additional Inherited Members | |
![]() | |
static const int | dim = domain_type::dim |
world Dimension | |
![]() | |
ConstSmartPtr< DoFDistribution > | dd (const GridLevel &gl) const |
returns the level dof distribution | |
![]() | |
map< DoFIndex, number > | m_mObstacleValues |
map to store obstacle values with its corresponding DoFs | |
vector< DoFIndex > | m_vActiveDofs |
stores the dofs, which satisfy the constraints with equality | |
vector< int > | m_vObsSubsets |
stores the subset-indices of the obstacle subsets | |
![]() | |
SmartPtr< ApproximationSpace< TDomain > > | m_spApproxSpace |
Approximation Space. | |
ConstSmartPtr< AssemblingTuner< TAlgebra > > | m_spAssTuner |
Assemble adapter. | |
SmartPtr< IErrEstData< TDomain > > | m_spErrEstData |
error estimation object associated to the element discretization | |
Scalar Lower Obstacles.
Scalar obstacle are described by constraints of the form
u <= upObs (cf. 'set_upper_obstacle' in 'IObstacleConstraint')
and
u >= lowObs (cf. 'set_lower_obstacle' in 'IObstacleConstraint')
where u is the solution vector. Here, 'upObs' and 'lowObs' are user-defined functions, which need to be of the same size as the function of unknowns u.
Those obstacle functions can be used in combination with projected preconditioners. They should be passed to the preconditioner by 'IProjPreconditioner::set_obstacle_constraint'.
typedef TAlgebra ug::ScalarLowerObstacle< TDomain, TAlgebra >::algebra_type |
Algebra type.
typedef IObstacleConstraint<TDomain,TAlgebra> ug::ScalarLowerObstacle< TDomain, TAlgebra >::base_type |
Base class type.
typedef GridFunction<TDomain, TAlgebra> ug::ScalarLowerObstacle< TDomain, TAlgebra >::function_type |
Type of grid function.
typedef algebra_type::matrix_type ug::ScalarLowerObstacle< TDomain, TAlgebra >::matrix_type |
Matrix type.
typedef vector_type::value_type ug::ScalarLowerObstacle< TDomain, TAlgebra >::value_type |
Value type.
typedef algebra_type::vector_type ug::ScalarLowerObstacle< TDomain, TAlgebra >::vector_type |
Vector type.
|
inline |
constructor for a scalar obstacle
|
inline |
default constructor
|
inline |
Destructor.
|
virtual |
the defect needs to be adjusted for the active indices (those indices, which are in contact)
Implements ug::IObstacleConstraint< TDomain, TAlgebra >.
References ug::BlockRef().
|
virtual |
projects the i-th index of the solution onto the admissible set and adjusts the correction
Implements ug::IObstacleConstraint< TDomain, TAlgebra >.
References ug::BlockRef().
|
virtual |
restricts the obstacle values to a coarser grid in a multigrid hierarchy
Implements ug::IObstacleConstraint< TDomain, TAlgebra >.
|
private |
map storing the obstacle values for every obstacle dof (key)
|
private |
store the dofs, which satisfy the constraints with equality