ug4
|
Scalar Lower Obstacles. More...
#include <scalar_obstacle.h>
Public Types | |
typedef TAlgebra | algebra_type |
Algebra type. More... | |
typedef IObstacleConstraint< TDomain, TAlgebra > | base_type |
Base class type. More... | |
typedef GridFunction< TDomain, TAlgebra > | function_type |
Type of grid function. More... | |
typedef algebra_type::matrix_type | matrix_type |
Matrix type. More... | |
typedef vector_type::value_type | value_type |
Value type. More... | |
typedef algebra_type::vector_type | vector_type |
Vector type. More... | |
Public Types inherited from ug::IObstacleConstraint< TDomain, TAlgebra > | |
typedef TAlgebra | algebra_type |
Algebra type. More... | |
typedef IDomainConstraint< TDomain, TAlgebra > | base_type |
Base Type. More... | |
typedef TDomain | domain_type |
Type of domain. More... | |
typedef algebra_type::matrix_type | matrix_type |
Matrix type. More... | |
typedef domain_type::position_type | position_type |
Type of position coordinates (e.g. position_type) More... | |
typedef vector_type::value_type | value_type |
Value type. More... | |
typedef algebra_type::vector_type | vector_type |
Vector type. More... | |
Public Types inherited from ug::IDomainConstraint< TDomain, TAlgebra > | |
typedef TAlgebra | algebra_type |
Algebra type. More... | |
typedef TDomain | domain_type |
Domain Type. More... | |
typedef algebra_type::matrix_type | matrix_type |
Type of algebra matrix. More... | |
typedef algebra_type::vector_type | vector_type |
Type of algebra vector. More... | |
Public Types inherited from ug::IConstraint< TAlgebra > | |
typedef TAlgebra | algebra_type |
Algebra type. More... | |
typedef algebra_type::matrix_type | matrix_type |
Type of algebra matrix. More... | |
typedef algebra_type::vector_type | vector_type |
Type of algebra vector. More... | |
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) More... | |
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 More... | |
void | restrict_obs_values () |
restricts the obstacle values to a coarser grid in a multigrid hierarchy More... | |
ScalarLowerObstacle () | |
default constructor More... | |
ScalarLowerObstacle (const function_type &u) | |
constructor for a scalar obstacle More... | |
~ScalarLowerObstacle () | |
Destructor. More... | |
Public Member Functions inherited from ug::IObstacleConstraint< TDomain, TAlgebra > | |
void | active_dofs (vector< DoFIndex > &vActiveDoFs) |
returns the vector storing the active dofs More... | |
void | add (number value, const char *function) |
adds a constant value as dirichlet condition for a function on subsets and on whole domain More... | |
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 More... | |
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 More... | |
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) More... | |
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 More... | |
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 More... | |
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 More... | |
virtual void | adjust_prolongation (matrix_type &P, ConstSmartPtr< DoFDistribution > ddFine, ConstSmartPtr< DoFDistribution > ddCoarse, int type, number time=0.0) |
sets constraints in prolongation More... | |
virtual void | adjust_restriction (matrix_type &R, ConstSmartPtr< DoFDistribution > ddCoarse, ConstSmartPtr< DoFDistribution > ddFine, int type, number time=0.0) |
sets constraints in restriction More... | |
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 More... | |
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 More... | |
void | init () |
IObstacleConstraint () | |
constructor More... | |
IObstacleConstraint (const GridFunction< TDomain, TAlgebra > &u) | |
constructor for an obstacle defined on some subset(s) More... | |
bool | is_obs_dof (const DoFIndex &dof) |
checks if a given dof is in an obstacle subset More... | |
virtual void | preprocess () |
void | reset_active_dofs () |
resets the vector storing the active dofs More... | |
virtual int | type () const |
returns the type of the constraints More... | |
virtual | ~IObstacleConstraint () |
Destructor. More... | |
Public Member Functions inherited from ug::IDomainConstraint< TDomain, TAlgebra > | |
SmartPtr< ApproximationSpace< TDomain > > | approximation_space () |
returns approximation space More... | |
ConstSmartPtr< ApproximationSpace< TDomain > > | approximation_space () const |
returns approximation space More... | |
virtual SmartPtr< IErrEstData< TDomain > > | err_est_data () |
returns the pointer to the error estimator data object (or NULL) More... | |
bool | err_est_enabled () const |
find out whether or not a posteriori error estimation is to be performed for this disc More... | |
IDomainConstraint () | |
constructor More... | |
virtual void | set_approximation_space (SmartPtr< ApproximationSpace< TDomain > > approxSpace) |
sets the approximation space More... | |
void | set_ass_tuner (ConstSmartPtr< AssemblingTuner< TAlgebra > > spAssemblingTuner=NULL) |
sets the assemble adapter for the constraints More... | |
void | set_error_estimator (SmartPtr< IErrEstData< TDomain > > ee) |
sets the pointer to an error estimator data object (or NULL) More... | |
Public Member Functions inherited from ug::IConstraint< TAlgebra > | |
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 More... | |
virtual void | adjust_linear_residual (vector_type &d, const vector_type &u, ConstSmartPtr< DoFDistribution > dd, int type, number time=0.0) |
adjust linear residual More... | |
virtual void | adjust_prolongation (vector_type &uFine, GridLevel fineLvl, const vector_type &uCoarse, GridLevel coarseLvl, int type) |
sets the constraints in a solution vector More... | |
virtual void | adjust_restriction (vector_type &uCoarse, GridLevel coarseLvl, const vector_type &uFine, GridLevel fineLvl, int type) |
sets the constraints in a solution vector More... | |
virtual void | modify_solution (SmartPtr< VectorTimeSeries< vector_type > > vSolMod, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, ConstSmartPtr< DoFDistribution > dd, int type) |
modify_solution for instationary case More... | |
virtual void | modify_solution (vector_type &uMod, const vector_type &u, ConstSmartPtr< DoFDistribution > dd, int type) |
modifies solution vector before calling the assembling routine More... | |
virtual | ~IConstraint () |
virtual destructor More... | |
Additional Inherited Members | |
Static Public Attributes inherited from ug::IObstacleConstraint< TDomain, TAlgebra > | |
static const int | dim = domain_type::dim |
world Dimension More... | |
Protected Member Functions inherited from ug::IDomainConstraint< TDomain, TAlgebra > | |
ConstSmartPtr< DoFDistribution > | dd (const GridLevel &gl) const |
returns the level dof distribution More... | |
Protected Attributes inherited from ug::IObstacleConstraint< TDomain, TAlgebra > | |
map< DoFIndex, number > | m_mObstacleValues |
map to store obstacle values with its corresponding DoFs More... | |
vector< DoFIndex > | m_vActiveDofs |
stores the dofs, which satisfy the constraints with equality More... | |
vector< int > | m_vObsSubsets |
stores the subset-indices of the obstacle subsets More... | |
Protected Attributes inherited from ug::IDomainConstraint< TDomain, TAlgebra > | |
SmartPtr< ApproximationSpace< TDomain > > | m_spApproxSpace |
Approximation Space. More... | |
ConstSmartPtr< AssemblingTuner< TAlgebra > > | m_spAssTuner |
Assemble adapter. More... | |
SmartPtr< IErrEstData< TDomain > > | m_spErrEstData |
error estimation object associated to the element discretization More... | |
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 >.