|
| 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
|
| |
| | ObstacleInNormalDir () |
| | constructor
|
| |
| | ObstacleInNormalDir (const function_type &u) |
| |
| void | preprocess () |
| | preprocess is useful to attach the normals for every obstacle DoF
|
| |
| void | restrict_obs_values () |
| | restricts the obstacle values to a coarser grid in a multigrid hierarchy
|
| |
| | ~ObstacleInNormalDir () |
| | 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
|
| |
| void | reset_active_dofs () |
| | resets the vector storing the active dofs
|
| |
| virtual int | type () const |
| | returns the type of the constraints
|
| |
| virtual | ~IObstacleConstraint () |
| | Destructor.
|
| |
Public Member Functions inherited from ug::IDomainConstraint< TDomain, TAlgebra > |
| 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
|
| |
template<typename TDomain, typename TAlgebra>
class ug::ObstacleInNormalDir< TDomain, TAlgebra >
Obstacle Class for Obstacle in normal direction.
Scalar obstacle are described by constraints of the form
u * n <= upObs (cf. 'set_upper_obstacle' in 'IObstacleConstraint')
and
u * n >= lowObs (cf. 'set_lower_obstacle' in 'IObstacleConstraint')
where u is the solution vector and n the normal vector to the boundary-face/side.
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'.