ug4
|
generic domain discretization implementing the interface More...
#include <domain_disc.h>
Public Types | |
typedef TAlgebra | algebra_type |
Type of algebra. More... | |
typedef ApproximationSpace< TDomain > | approx_space_type |
Type of approximation space. More... | |
typedef TDomain | domain_type |
Type of Domain. More... | |
typedef CPUAlgebra::vector_type | error_vector_type |
Type of error vector. 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::IDomainDiscretization< 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 Types inherited from ug::IAssemble< TAlgebra > | |
typedef TAlgebra | algebra_type |
Algebra type. More... | |
typedef TAlgebra::matrix_type | matrix_type |
Type of algebra matrix. More... | |
typedef TAlgebra::vector_type | vector_type |
Type of algebra vector. More... | |
Public Types inherited from ug::IDomainErrorIndicator< TAlgebra > | |
typedef CPUAlgebra::vector_type | error_vector_type |
Type of error vector. More... | |
typedef TAlgebra::vector_type | vector_type |
Type of algebra vector. More... | |
Public Types inherited from ug::IDomainMarker< TDomain > | |
typedef IElementMarkingStrategy< TDomain > | element_marking_strategy_type |
Type of algebra vector. More... | |
Public Member Functions | |
void | add (SmartPtr< IDiscretizationItem< TDomain, TAlgebra > > di) |
adds a disc item to the assembling process More... | |
void | add (SmartPtr< IDomainConstraint< TDomain, TAlgebra > > pp) |
adds a constraint to the assembling process More... | |
void | add (SmartPtr< IElemDisc< TDomain > > elem) |
adds an element discretization to the assembling process More... | |
void | add_elem_error_indicator (SmartPtr< IElemError< TDomain > > elem) |
adds an element error indicator to the assembling process More... | |
virtual void | adjust_solution (vector_type &u, const GridLevel &gl) |
sets dirichlet values in solution vector More... | |
virtual void | adjust_solution (vector_type &u, ConstSmartPtr< DoFDistribution > dd) |
sets dirichlet values in solution vector More... | |
virtual void | adjust_solution (vector_type &u, number time, const GridLevel &gl) |
sets dirichlet values in solution vector More... | |
virtual void | adjust_solution (vector_type &u, number time, ConstSmartPtr< DoFDistribution > dd) |
sets dirichlet values in solution vector More... | |
SmartPtr< approx_space_type > | approximation_space () |
ConstSmartPtr< approx_space_type > | approximation_space () const |
virtual void | assemble_defect (vector_type &d, const vector_type &u, const GridLevel &gl) |
assembles Defect More... | |
virtual void | assemble_defect (vector_type &d, const vector_type &u, ConstSmartPtr< DoFDistribution > dd) |
assembles Defect More... | |
virtual void | assemble_defect (vector_type &d, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff, const GridLevel &gl) |
assembles Defect More... | |
virtual void | assemble_defect (vector_type &d, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff, ConstSmartPtr< DoFDistribution > dd) |
assembles Defect More... | |
virtual void | assemble_jacobian (matrix_type &J, const vector_type &u, const GridLevel &gl) |
assembles Jacobian (or Approximation of Jacobian) More... | |
virtual void | assemble_jacobian (matrix_type &J, const vector_type &u, ConstSmartPtr< DoFDistribution > dd) |
assembles Jacobian (or Approximation of Jacobian) More... | |
virtual void | assemble_jacobian (matrix_type &J, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const number s_a, const GridLevel &gl) |
assembles Jacobian (or Approximation of Jacobian) More... | |
virtual void | assemble_jacobian (matrix_type &J, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const number s_a0, ConstSmartPtr< DoFDistribution > dd) |
assembles Jacobian (or Approximation of Jacobian) More... | |
virtual void | assemble_linear (matrix_type &A, vector_type &b, ConstSmartPtr< DoFDistribution > dd) |
Assembles Matrix and Right-Hand-Side for a linear problem. More... | |
virtual void | assemble_linear (matrix_type &A, vector_type &b, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff, const GridLevel &gl) |
Assembles matrix_type and Right-Hand-Side for a linear problem. More... | |
virtual void | assemble_linear (matrix_type &A, vector_type &b, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff, ConstSmartPtr< DoFDistribution > dd) |
Assembles Matrix and Right-Hand-Side for a linear problem. More... | |
virtual void | assemble_linear (matrix_type &mat, vector_type &rhs, const GridLevel &gl) |
Assembles Matrix and Right-Hand-Side for a linear problem. More... | |
virtual void | assemble_mass_matrix (matrix_type &M, const vector_type &u, const GridLevel &gl) |
assembles the mass matrix More... | |
virtual void | assemble_mass_matrix (matrix_type &M, const vector_type &u, ConstSmartPtr< DoFDistribution > dd) |
assembles the mass matrix More... | |
virtual void | assemble_rhs (vector_type &b, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff, const GridLevel &gl) |
Assembles Right-Hand-Side for a linear problem. More... | |
virtual void | assemble_rhs (vector_type &b, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff, ConstSmartPtr< DoFDistribution > dd) |
assembles the rhs More... | |
virtual void | assemble_rhs (vector_type &rhs, const GridLevel &gl) |
assembles the rhs More... | |
virtual void | assemble_rhs (vector_type &rhs, const vector_type &u, const GridLevel &gl) |
assembles the rhs More... | |
virtual void | assemble_rhs (vector_type &rhs, const vector_type &u, ConstSmartPtr< DoFDistribution > dd) |
assembles rhs More... | |
virtual void | assemble_rhs (vector_type &rhs, ConstSmartPtr< DoFDistribution > dd) |
assembles rhs More... | |
virtual void | assemble_stiffness_matrix (matrix_type &A, const vector_type &u, const GridLevel &gl) |
assembles the stiffness matrix More... | |
virtual void | assemble_stiffness_matrix (matrix_type &A, const vector_type &u, ConstSmartPtr< DoFDistribution > dd) |
assembles the stiffness matrix More... | |
virtual void | calc_error (const GridFunction< TDomain, TAlgebra > &u) |
virtual void | calc_error (const GridFunction< TDomain, TAlgebra > &u, error_vector_type *u_vtk) |
virtual void | calc_error (const vector_type &u, const GridLevel &gl, error_vector_type *u_vtk=NULL) |
virtual void | calc_error (const vector_type &u, ConstSmartPtr< DoFDistribution > dd, error_vector_type *u_vtk=NULL) |
virtual void | calc_error (ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff, const GridLevel &gl, error_vector_type *u_vtk) |
Transient version. More... | |
virtual void | calc_error (ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, ConstSmartPtr< DoFDistribution > dd, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff, error_vector_type *u_vtk) |
Transient version. More... | |
virtual SmartPtr< IConstraint< TAlgebra > > | constraint (size_t i) |
returns the i'th constraint More... | |
DomainDiscretizationBase (SmartPtr< approx_space_type > pApproxSpace) | |
default Constructor More... | |
virtual void | finish_timestep (ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const GridLevel &gl) |
virtual void | finish_timestep (ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, ConstSmartPtr< DoFDistribution > dd) |
finishes time step More... | |
virtual void | finish_timestep_elem (ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const GridLevel &gl) |
finishes timestep More... | |
virtual void | finish_timestep_elem (ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, ConstSmartPtr< DoFDistribution > dd) |
finishes timestep More... | |
void | init_all_exports (bool bAsTimeDependent) |
virtual void | init_all_exports (const GridLevel &gl, bool bAsTimeDependent) |
virtual void | init_all_exports (ConstSmartPtr< DoFDistribution > dd, bool bAsTimeDependent) |
virtual void | invalidate_error () |
virtual bool | is_error_valid () |
returns whether current error values are valid More... | |
virtual void | mark_with_strategy (IRefiner &refiner, SmartPtr< IElementMarkingStrategy< TDomain > > strategy) |
virtual size_t | num_constraints () const |
returns number of registered constraints More... | |
virtual void | prepare_timestep (ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, number future_time, const GridLevel &gl) |
virtual void | prepare_timestep (ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, number future_time, ConstSmartPtr< DoFDistribution > dd) |
prepares time step More... | |
virtual void | prepare_timestep_elem (ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const GridLevel &gl) |
virtual void | prepare_timestep_elem (ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, ConstSmartPtr< DoFDistribution > dd) |
prepares time step element-wise More... | |
void | remove (SmartPtr< IDomainConstraint< TDomain, TAlgebra > > pp) |
removes a constraint from the assembling process More... | |
void | remove (SmartPtr< IElemDisc< TDomain > > elem) |
removes a element discretization from the assembling process More... | |
void | remove_elem_error_indicator (SmartPtr< IElemError< TDomain > > elem) |
removes a element discretization from the assembling process More... | |
virtual | ~DomainDiscretizationBase () |
virtual destructor More... | |
void | assemble_jacobian (matrix_type &J, GridFunction< TDomain, TAlgebra > &u) |
void | assemble_defect (vector_type &d, GridFunction< TDomain, TAlgebra > &u) |
void | assemble_linear (matrix_type &A, GridFunction< TDomain, TAlgebra > &rhs) |
void | assemble_rhs (vector_type &rhs, GridFunction< TDomain, TAlgebra > &u) |
void | assemble_rhs (GridFunction< TDomain, TAlgebra > &b) |
void | adjust_solution (GridFunction< TDomain, TAlgebra > &u) |
virtual SmartPtr< AssemblingTuner< TAlgebra > > | ass_tuner () |
virtual ConstSmartPtr< AssemblingTuner< TAlgebra > > | ass_tuner () const |
Public Member Functions inherited from ug::IDomainDiscretization< TAlgebra > | |
void | adjust_solution (vector_type &u, number time) |
adjust solution on surface level More... | |
void | assemble_defect (vector_type &d, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff) |
assembles defect on surface level More... | |
void | assemble_jacobian (matrix_type &J, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const number s_a) |
assembles jacobian on surface level More... | |
void | assemble_linear (matrix_type &A, vector_type &b, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff) |
assembles linear on surface level More... | |
void | assemble_rhs (vector_type &b, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff) |
assembles rhs on surface level More... | |
virtual void | finish_timestep (ConstSmartPtr< VectorTimeSeries< vector_type > > vSol) |
void | finish_timestep_elem (ConstSmartPtr< VectorTimeSeries< vector_type > > vSol) |
finishes timestep on surface level More... | |
virtual void | prepare_timestep (ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, number future_time) |
void | prepare_timestep_elem (ConstSmartPtr< VectorTimeSeries< vector_type > > vSol) |
prepares timestep on surface level More... | |
virtual | ~IDomainDiscretization () |
Public Member Functions inherited from ug::IAssemble< TAlgebra > | |
void | adjust_solution (vector_type &u) |
void | assemble_defect (vector_type &d, const vector_type &u) |
void | assemble_jacobian (matrix_type &J, const vector_type &u) |
void | assemble_linear (matrix_type &A, vector_type &b) |
void | assemble_mass_matrix (matrix_type &M, const vector_type &u) |
void | assemble_rhs (vector_type &b) |
virtual void | assemble_rhs (vector_type &rhs, const vector_type &u) |
void | assemble_stiffness_matrix (matrix_type &A, const vector_type &u) |
virtual | ~IAssemble () |
Virtual Destructor. More... | |
Public Member Functions inherited from ug::IDomainErrorIndicator< TAlgebra > | |
virtual | ~IDomainErrorIndicator () |
Public Member Functions inherited from ug::IDomainMarker< TDomain > | |
virtual | ~IDomainMarker () |
Static Public Attributes | |
static const int | dim = TDomain::dim |
world dimension More... | |
Protected Member Functions | |
ConstSmartPtr< DoFDistribution > | dd (const GridLevel &gl) const |
returns the level dof distribution More... | |
void | update_constraints () |
void | update_disc_items () |
void | update_elem_discs () |
set the approximation space in the elem discs and extract IElemDiscs More... | |
void | update_elem_errors () |
void | update_error_items () |
Protected Attributes | |
bool | m_bErrorCalculated |
IMultigridElementIndicators< TDomain > | m_mgElemErrors |
SmartPtr< approx_space_type > | m_spApproxSpace |
current approximation space More... | |
SmartPtr< AssemblingTuner< TAlgebra > > | m_spAssTuner |
this object provides tools to adapt the assemble routine More... | |
std::vector< SmartPtr< IDomainConstraint< TDomain, TAlgebra > > > | m_vConstraint |
vector holding all registered constraints More... | |
std::vector< SmartPtr< IElemDisc< TDomain > > > | m_vDomainElemDisc |
vector holding all registered elem discs More... | |
std::vector< SmartPtr< IElemError< TDomain > > > | m_vDomainElemError |
vector holding all registered elem discs More... | |
std::vector< IElemDisc< TDomain > * > | m_vElemDisc |
vector holding all registered elem discs More... | |
std::vector< IElemError< TDomain > * > | m_vElemError |
vector holding all registered elem discs More... | |
Private Types | |
typedef TGlobAssembler | gass_type |
Type of the global assembler. More... | |
Private Member Functions | |
template<typename TElem > | |
void | AssembleDefect (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< DoFDistribution > dd, int si, bool bNonRegularGrid, vector_type &d, const vector_type &u) |
template<typename TElem > | |
void | AssembleDefect (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< DoFDistribution > dd, int si, bool bNonRegularGrid, vector_type &d, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff) |
template<typename TElem > | |
void | AssembleErrorEstimator (const std::vector< IElemError< domain_type > * > &vElemDisc, ConstSmartPtr< DoFDistribution > dd, int si, bool bNonRegularGrid, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol) |
template<typename TElem > | |
void | AssembleErrorEstimator (const std::vector< IElemError< domain_type > * > &vElemDisc, ConstSmartPtr< DoFDistribution > dd, int si, bool bNonRegularGrid, const vector_type &u) |
template<typename TElem > | |
void | AssembleJacobian (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< DoFDistribution > dd, int si, bool bNonRegularGrid, matrix_type &J, const vector_type &u) |
template<typename TElem > | |
void | AssembleJacobian (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< DoFDistribution > dd, int si, bool bNonRegularGrid, matrix_type &J, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, number s_a0) |
template<typename TElem > | |
void | AssembleLinear (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< DoFDistribution > dd, int si, bool bNonRegularGrid, matrix_type &A, vector_type &rhs) |
template<typename TElem > | |
void | AssembleLinear (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< DoFDistribution > dd, int si, bool bNonRegularGrid, matrix_type &A, vector_type &rhs, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff) |
template<typename TElem > | |
void | AssembleMassMatrix (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< DoFDistribution > dd, int si, bool bNonRegularGrid, matrix_type &M, const vector_type &u) |
template<typename TElem > | |
void | AssembleRhs (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< DoFDistribution > dd, int si, bool bNonRegularGrid, vector_type &rhs, const vector_type &u) |
template<typename TElem > | |
void | AssembleRhs (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< DoFDistribution > dd, int si, bool bNonRegularGrid, vector_type &rhs, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff) |
template<typename TElem > | |
void | AssembleStiffnessMatrix (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< DoFDistribution > dd, int si, bool bNonRegularGrid, matrix_type &A, const vector_type &u) |
template<typename TElem > | |
void | FinishTimestepElem (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< DoFDistribution > dd, int si, bool bNonRegularGrid, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol) |
template<typename TElem > | |
void | InitAllExports (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< DoFDistribution > dd, int si, bool bNonRegularGrid, bool bAsTimeDependent) |
template<typename TElem > | |
void | PrepareTimestepElem (const std::vector< IElemDisc< domain_type > * > &vElemDisc, ConstSmartPtr< DoFDistribution > dd, int si, bool bNonRegularGrid, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol) |
generic domain discretization implementing the interface
This class template is an implementation of the IDomainDiscretization interface based on the simple groupping of several local (element) discretizations and constraints.
Functions of this class template prepare lists of the local discretizations and elements (where to assemble) for every subset, whereas assembling itself is performed by functions of the so-called 'global assembler class' specified by the TGlobAssembler template parameter. The latter class implements assembling for the generic lists of elements belonging to only one subset. Cf. class StdGlobAssembler for a complete example. Note that all the functions from that example should be implemented (no matter where as regular or static members).
TDomain | domain type |
TAlgebra | algebra type |
TGlobAssembler | global assembler type |
typedef TAlgebra ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::algebra_type |
Type of algebra.
typedef ApproximationSpace<TDomain> ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::approx_space_type |
Type of approximation space.
typedef TDomain ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::domain_type |
Type of Domain.
typedef CPUAlgebra::vector_type ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::error_vector_type |
Type of error vector.
|
private |
Type of the global assembler.
typedef algebra_type::matrix_type ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::matrix_type |
Type of algebra matrix.
typedef algebra_type::vector_type ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::vector_type |
Type of algebra vector.
|
inline |
default Constructor
References new().
|
inlinevirtual |
virtual destructor
|
inline |
adds a disc item to the assembling process
This function adds a IDiscretizationItem to the assembling. The contained elem discs and constraints are sorted into the lists
[in] | di | Disc Item |
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::add().
|
inline |
adds a constraint to the assembling process
This function adds a IConstraint to the assembling. The constraint is called when all element-wise assembling have been performed.
[in] | pp | Constraint to be added |
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::m_spApproxSpace, and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::m_vConstraint.
|
inline |
adds an element discretization to the assembling process
This function adds an Element Discretization to the assembling. During the assembling process the elem disc will assemble a given group of subsets and add the output to the passed vectors and matrices. For each Elem Disc one loop over all elements of the subset will be performed.
[in] | elem | Element Discretization to be added |
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::m_spApproxSpace, and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::m_vDomainElemDisc.
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::add().
|
inline |
adds an element error indicator to the assembling process
This function adds an Element Discretization to the assembling. During the assembling process the elem disc will assemble a given group of subsets and add the output to the passed vectors and matrices. For each Elem Disc one loop over all elements of the subset will be performed.
[in] | elem | Element error indicator to be added |
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::m_spApproxSpace, and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::m_vDomainElemError.
|
inline |
|
inlinevirtual |
sets dirichlet values in solution vector
Sets dirichlet values of the NumericalSolution u when components are dirichlet
[out] | u | Numerical Solution |
[in] | dd | DoF Distribution |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::adjust_solution(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::dd().
|
virtual |
sets dirichlet values in solution vector
Sets dirichlet values of the NumericalSolution u when components are dirichlet
[out] | u | Numerical Solution |
[in] | gl | Grid Level |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::CT_ASSEMBLED, ug::CT_CONSTRAINTS, ug::CT_DIRICHLET, ug::CT_HANGING, ug::CT_MAY_DEPEND_ON_HANGING, PROFILE_FUNC_GROUP, and UG_CATCH_THROW.
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::adjust_solution().
|
inlinevirtual |
sets dirichlet values in solution vector
Sets dirichlet values of the Solution u when components are dirichlet
[in] | u | Solution to set values at |
[in] | time | time of next (to be computed) timestep |
[in] | dd | DoF Distribution |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::adjust_solution(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::dd().
|
virtual |
sets dirichlet values in solution vector
Sets dirichlet values of the NumericalSolution u when components are dirichlet
[out] | u | Numerical Solution |
[in] | dd | DoF Distribution |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::CT_CONSTRAINTS, ug::CT_DIRICHLET, ug::CT_HANGING, ug::CT_MAY_DEPEND_ON_HANGING, PROFILE_FUNC_GROUP, and UG_CATCH_THROW.
|
inline |
|
inline |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
assembles Defect
Assembles Defect at a given Solution u.
[out] | d | Defect d(u) to be filled |
[in] | u | Current iterate |
[in] | dd | DoF Distribution |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_defect(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::dd().
|
virtual |
assembles Defect
Assembles Defect at a given Solution u.
[out] | d | Defect d(u) to be filled |
[in] | u | Current iterate |
[in] | gl | Grid Level |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::CreateSubsetGroups(), ug::CT_ALL, ug::CT_DIRICHLET, dim, ug::DimensionOfSubset(), SmartPtr< T, FreePolicy >::get(), ug::GetElemDiscOnSubset(), ug::post_assemble_loop(), ug::prep_assemble_loop(), PROFILE_FUNC_GROUP, ug::PST_ADDITIVE, ug::SubsetGroup::regular_grid(), ug::SubsetGroup::size(), UG_CATCH_THROW, and UG_THROW.
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_defect().
|
inlinevirtual |
assembles Defect
Assembles Defect at a given Solution u.
[out] | d | Defect d(u) to be filled |
[in] | vSol | vector of previous and current (iterated) solution |
[in] | vScaleMass | scaling factors for mass matrix |
[in] | vScaleStiff | scaling factors for stiffness matrix |
[in] | dd | DoF Distribution |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_defect(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::dd().
|
virtual |
assembles Defect
Assembles Defect at a given Solution u.
[out] | d | Defect d(u) to be filled |
[in] | u | Current iterate |
[in] | dd | DoF Distribution |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::CreateSubsetGroups(), ug::CT_ALL, dim, ug::DimensionOfSubset(), ug::GetElemDiscOnSubset(), ug::post_assemble_loop(), ug::prep_assemble_loop(), PROFILE_FUNC_GROUP, ug::PST_ADDITIVE, ug::SubsetGroup::regular_grid(), ug::SubsetGroup::size(), UG_CATCH_THROW, and UG_THROW.
|
inline |
|
inlinevirtual |
assembles Jacobian (or Approximation of Jacobian)
Assembles Jacobian at a given iterate u.
[out] | J | Jacobian J(u) matrix to be filled |
[in] | u | Current iterate |
[in] | dd | DoF Distribution |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_jacobian(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::dd().
|
virtual |
assembles Jacobian (or Approximation of Jacobian)
Assembles Jacobian at a given iterate u.
[out] | J | Jacobian J(u) matrix to be filled |
[in] | u | Current iterate |
[in] | gl | Grid Level |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::CT_ALL, SmartPtr< T, FreePolicy >::get(), ug::prep_assemble_loop(), PROFILE_FUNC_GROUP, and UG_CATCH_THROW.
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_jacobian().
|
inlinevirtual |
assembles Jacobian (or Approximation of Jacobian)
Assembles Jacobian at a given Solution u.
[out] | J | Jacobian J(u) Matrix to be filled |
[in] | vSol | vector of previous and current (iterated) solution |
[in] | s_a | scaling factors for mass matrix |
[in] | dd | DoF Distribution |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_jacobian(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::dd().
|
virtual |
assembles Jacobian (or Approximation of Jacobian)
Assembles Jacobian at a given iterate u.
[out] | J | Jacobian J(u) matrix to be filled |
[in] | u | Current iterate |
[in] | dd | DoF Distribution |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::CreateSubsetGroups(), ug::CT_ALL, dim, ug::DimensionOfSubset(), ug::GetElemDiscOnSubset(), ug::post_assemble_loop(), ug::prep_assemble_loop(), PROFILE_FUNC_GROUP, ug::PST_ADDITIVE, ug::SubsetGroup::regular_grid(), ug::SubsetGroup::size(), UG_CATCH_THROW, and UG_THROW.
|
inline |
|
inline |
|
virtual |
Assembles Matrix and Right-Hand-Side for a linear problem.
Assembles matrix_type and Right-Hand-Side for a linear problem
[out] | A | Mass-/Stiffness- Matrix |
[out] | b | Right-Hand-Side |
[in] | gl | Grid Level |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::CreateSubsetGroups(), ug::CT_ALL, dim, ug::DimensionOfSubset(), ug::GetElemDiscOnSubset(), ug::post_assemble_loop(), ug::prep_assemble_loop(), PROFILE_FUNC_GROUP, ug::PST_ADDITIVE, ug::SubsetGroup::regular_grid(), ug::SubsetGroup::size(), UG_CATCH_THROW, and UG_THROW.
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_linear().
|
inlinevirtual |
Assembles matrix_type and Right-Hand-Side for a linear problem.
Assembles matrix_type and Right-Hand-Side for a linear problem
[out] | A | Mass-/Stiffness- matrix_type of the discretization |
[out] | b | Right-Hand-Side of the discretization |
[in] | vSol | vector of previous and current (iterated) solution |
[in] | vScaleMass | scaling factors for mass matrix |
[in] | vScaleStiff | scaling factors for stiffness matrix |
[in] | dd | DoF Distribution |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_linear(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::dd().
|
virtual |
Assembles Matrix and Right-Hand-Side for a linear problem.
Assembles matrix_type and Right-Hand-Side for a linear problem
[out] | A | Mass-/Stiffness- Matrix |
[out] | b | Right-Hand-Side |
[in] | dd | DoF Distribution |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::CreateSubsetGroups(), ug::CT_ALL, dim, ug::DimensionOfSubset(), ug::GetElemDiscOnSubset(), PROFILE_FUNC_GROUP, ug::PST_ADDITIVE, ug::SubsetGroup::regular_grid(), ug::SubsetGroup::size(), UG_CATCH_THROW, and UG_THROW.
|
inlinevirtual |
Assembles Matrix and Right-Hand-Side for a linear problem.
Assembles matrix_type and Right-Hand-Side for a linear problem
[out] | A | Mass-/Stiffness- Matrix |
[out] | b | Right-Hand-Side |
[in] | dd | DoF Distribution |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_linear(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::dd().
|
inlinevirtual |
assembles the mass matrix
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_mass_matrix(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::dd().
|
virtual |
assembles the mass matrix
Implements ug::IDomainDiscretization< TAlgebra >.
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_mass_matrix().
|
inline |
|
inlinevirtual |
Assembles Right-Hand-Side for a linear problem.
Assembles Right-Hand-Side for a linear problem
[out] | b | Right-Hand-Side of the discretization |
[in] | vSol | vector of previous and current (iterated) solution |
[in] | vScaleMass | scaling factors for mass matrix |
[in] | vScaleStiff | scaling factors for stiffness matrix |
[in] | dd | DoF Distribution |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_rhs(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::dd().
|
virtual |
assembles the rhs
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::CreateSubsetGroups(), ug::CT_ALL, dim, ug::DimensionOfSubset(), ug::GetElemDiscOnSubset(), PROFILE_FUNC_GROUP, ug::PST_ADDITIVE, ug::SubsetGroup::regular_grid(), ug::SubsetGroup::size(), UG_CATCH_THROW, and UG_THROW.
|
inlinevirtual |
assembles the rhs
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_rhs(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::dd().
|
inlinevirtual |
assembles the rhs
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_rhs(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::dd().
|
virtual |
assembles rhs
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::CreateSubsetGroups(), ug::CT_ALL, dim, ug::DimensionOfSubset(), ug::GetElemDiscOnSubset(), ug::post_assemble_loop(), ug::prep_assemble_loop(), PROFILE_FUNC_GROUP, ug::PST_ADDITIVE, ug::SubsetGroup::regular_grid(), ug::SubsetGroup::size(), UG_CATCH_THROW, and UG_THROW.
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_rhs().
|
inlinevirtual |
|
inline |
|
inlinevirtual |
assembles the stiffness matrix
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_stiffness_matrix(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::dd().
|
virtual |
assembles the stiffness matrix
Implements ug::IDomainDiscretization< TAlgebra >.
References PROFILE_FUNC_GROUP.
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_stiffness_matrix().
|
private |
This function adds the contributions of all passed element discretizations on one given subset to the global Defect in the stationary case.
[in] | vElemDisc | element discretizations |
[in] | dd | DoF Distribution |
[in] | si | subset index |
[in] | bNonRegularGrid | flag to indicate if non regular grid is used |
[in,out] | d | defect |
[in] | u | solution |
|
private |
|
inlineprivate |
This function assembles the error estimator associated with all the element discretizations in the internal data structure for one given subset.
[in] | vElemDisc | element discretizations |
[in] | dd | DoF Distribution |
[in] | si | subset index |
[in] | bNonRegularGrid | flag to indicate if non regular grid is used |
[in] | vScaleMass | scaling factors for mass part |
[in] | vScaleStiff | scaling factors for stiffness part |
[in] | vSol | solution |
|
inlineprivate |
This function assembles the error estimator associated with all the element discretizations in the internal data structure for one given subset.
[in] | vElemDisc | element discretizations |
[in] | dd | DoF Distribution |
[in] | si | subset index |
[in] | bNonRegularGrid | flag to indicate if non regular grid is used |
[in] | u | solution |
|
private |
This function adds the contributions of all passed element discretizations on one given subset to the global Jacobian in the stationary case.
[in] | vElemDisc | element discretizations |
[in] | si | subset index |
[in] | bNonRegularGrid | flag to indicate if non regular grid is used |
[in,out] | J | jacobian |
[in] | u | solution |
|
private |
This function adds the contributions of all passed element discretizations on one given subset to the global Jacobian in the time-dependent case. Note, that s_m0 == 1
[in] | vElemDisc | element discretizations |
[in] | dd | DoF Distribution |
[in] | si | subset index |
[in] | bNonRegularGrid | flag to indicate if non regular grid is used |
[in,out] | J | jacobian |
[in] | vSol | current and previous solutions |
[in] | s_a0 | scaling factor for stiffness part |
|
private |
This function adds the contributions of all passed element discretizations on one given subset to the global Matrix and the global Right-Hand Side of the Linear problem in the stationary case.
[in] | vElemDisc | element discretizations |
[in] | dd | DoF Distribution |
[in] | si | subset index |
[in] | bNonRegularGrid | flag to indicate if non regular grid is used |
[in,out] | A | Matrix |
[in,out] | rhs | Right-hand side |
|
private |
This function adds the contributions of all passed element discretizations on one given subset to the global Matrix and the global Right-Hand Side of the Linear problem in the stationary case.
[in] | vElemDisc | element discretizations |
[in] | dd | DoF Distribution |
[in] | si | subset index |
[in] | bNonRegularGrid | flag to indicate if non regular grid is used |
[in,out] | A | Matrix |
[in,out] | rhs | Right-hand side |
[in] | vSol | current and previous solutions |
[in] | vScaleMass | scaling factors for mass part |
[in] | vScaleStiff | scaling factors for stiffness part |
|
private |
This function adds the contributions of all passed element discretizations on one given subset to the global Mass matrix.
[in] | vElemDisc | element discretizations |
[in] | dd | DoF Distribution |
[in] | si | subset index |
[in] | bNonRegularGrid | flag to indicate if non regular grid is used |
[in,out] | M | Mass matrix |
[in] | u | solution |
|
private |
This function adds the contributions of all passed element discretizations on one given subset to the global Right-Hand Side.
[in] | vElemDisc | element discretizations |
[in] | dd | DoF Distribution |
[in] | si | subset index |
[in] | bNonRegularGrid | flag to indicate if non regular grid is used |
[in,out] | rhs | Right-hand side |
[in] | u | solution |
|
private |
This function adds the contributions of all passed element discretizations on one given subset to the global Right-Hand Side in the time-dependent case.
[in] | vElemDisc | element discretizations |
[in] | dd | DoF Distribution |
[in] | si | subset index |
[in] | bNonRegularGrid | flag to indicate if non regular grid is used |
[in,out] | rhs | Right-hand side |
[in] | vSol | current and previous solutions |
[in] | vScaleMass | scaling factors for mass part |
[in] | vScaleStiff | scaling factors for stiffness part |
|
private |
This function adds the contributions of all passed element discretizations on one given subset to the global Stiffness matrix.
[in] | vElemDisc | element discretizations |
[in] | dd | DoF Distribution |
[in] | si | subset index |
[in] | bNonRegularGrid | flag to indicate if non regular grid is used |
[in,out] | A | Stiffness matrix |
[in] | u | solution |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
Computes the error estimator.
[in] | u | vector of the solution to estimate the error for |
[in] | dd | DoF Distribution |
Implements ug::IDomainErrorIndicator< TAlgebra >.
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::calc_error(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::dd().
|
virtual |
Implements ug::IDomainErrorIndicator< TAlgebra >.
References ug::AddLocalVector(), ug::SurfaceView::ALL, ug::GridFunction< TDomain, TAlgebra >::approx_space(), ug::CollectCornerCoordinates(), ug::CollectIErrEstData(), ug::CreateSubsetGroups(), ug::CT_ALL, dim, ug::DimensionOfSubset(), ug::GridFunction< TDomain, TAlgebra >::domain(), ug::ElementDebugInfo(), ConstSmartPtr< T, FreePolicy >::get(), ug::GetLocalVector(), ug::LocalIndices::num_dof(), ug::LocalIndices::num_fct(), PROFILE_FUNC_GROUP, ug::SubsetGroup::regular_grid(), ug::LocalVector::resize(), ug::SubsetGroup::size(), UG_CATCH_THROW, UG_COND_THROW, and UG_THROW.
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::calc_error().
|
inlinevirtual |
Transient version.
Implements ug::IDomainErrorIndicator< TAlgebra >.
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::calc_error(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::dd().
|
virtual |
Transient version.
Implements ug::IDomainErrorIndicator< TAlgebra >.
References ug::AddLocalVector(), ug::SurfaceView::ALL, ug::GridFunction< TDomain, TAlgebra >::approx_space(), ug::CollectCornerCoordinates(), ug::CollectIErrEstData(), ug::CreateSubsetGroups(), ug::CT_ALL, dim, ug::DimensionOfSubset(), ConstSmartPtr< T, FreePolicy >::get(), ug::GetLocalVector(), PROFILE_FUNC_GROUP, ug::SubsetGroup::regular_grid(), ug::LocalVector::resize(), ug::SubsetGroup::size(), UG_CATCH_THROW, and UG_THROW.
|
inlinevirtual |
returns the i'th constraint
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::m_vConstraint.
|
inlineprotected |
returns the level dof distribution
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::m_spApproxSpace.
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::adjust_solution(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_defect(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_jacobian(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_linear(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_mass_matrix(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_rhs(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_stiffness_matrix(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::calc_error(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::finish_timestep(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::finish_timestep_elem(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::init_all_exports(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::prepare_timestep(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::prepare_timestep_elem().
|
inlinevirtual |
|
virtual |
finishes time step
Finishes time step at a given solution u. This method is called only once after any time step.
[in] | vSol | vector of previous and current (iterated) solution |
[in] | dd | DoF distribution |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::post_assemble_loop(), ug::prep_assemble_loop(), PROFILE_FUNC_GROUP, ug::SubsetIsRegularGrid(), and UG_CATCH_THROW.
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::finish_timestep().
|
inlinevirtual |
finishes timestep
finishes timestep at a given Solution u.
[in] | vSol | vector of previous and current (iterated) solution |
[in] | dd | DoF Distribution |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::dd(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::finish_timestep_elem().
|
virtual |
finishes timestep
finishes timestep at a given Solution u.
[in] | vSol | vector of previous and current (iterated) solution |
[in] | dd | DoF Distribution |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::CreateSubsetGroups(), dim, ug::DimensionOfSubset(), ug::GetElemDiscOnSubset(), PROFILE_FUNC_GROUP, ug::SubsetGroup::regular_grid(), ug::SubsetGroup::size(), UG_CATCH_THROW, and UG_THROW.
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::finish_timestep_elem().
|
private |
This function finalizes the global discretization in a time-stepping scheme by calling the "finish_timestep_elem" methods of all passed element discretizations on one given subset.
[in] | vElemDisc | element discretizations |
[in] | dd | DoF Distribution |
[in] | si | subset index |
[in] | bNonRegularGrid | flag to indicate if non regular grid is used |
[in] | vSol | current and previous solutions |
|
inline |
|
inlinevirtual |
|
virtual |
References ug::CreateSubsetGroups(), dim, ug::DimensionOfSubset(), ug::GetElemDiscOnSubset(), PROFILE_FUNC_GROUP, ug::SubsetGroup::regular_grid(), ug::SubsetGroup::size(), UG_CATCH_THROW, and UG_THROW.
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::init_all_exports().
|
private |
This function initalizes the exports and does not do anything else.
It transfers the dof distributions to the exports and creates the function maps there.
This initizalization is optional but after that, the exports can be used by other objects (like in the plotting).
[in] | vElemDisc | element discretizations |
[in] | dd | DoF Distribution |
[in] | si | subset index |
[in] | bNonRegularGrid | flag to indicate if non regular grid is used |
[in] | bAsTimeDependent | flag to simulate the instationary case for the initialization |
|
virtual |
marks error indicators as invalid; in order to revalidate them, they will have to be newly calculated by a call to calc_error
Implements ug::IDomainErrorIndicator< TAlgebra >.
|
virtual |
returns whether current error values are valid
Implements ug::IDomainErrorIndicator< TAlgebra >.
|
virtual |
Implements ug::IDomainMarker< TDomain >.
References ug::GridLevel::SURFACE, ug::GridLevel::TOP, and UG_THROW.
|
inlinevirtual |
returns number of registered constraints
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::m_vConstraint.
|
inlinevirtual |
|
virtual |
prepares time step
Prepares time step at a given solution u. This method is called only once before any time step.
[in] | vSol | vector of previous and current (iterated) solution |
[in] | dd | DoF distribution |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::post_assemble_loop(), ug::prep_assemble_loop(), PROFILE_FUNC_GROUP, ug::SubsetIsRegularGrid(), and UG_CATCH_THROW.
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::prepare_timestep().
|
inlinevirtual |
|
virtual |
prepares time step element-wise
prepares time step element-wise at a given solution u.
[in] | vSol | vector of previous and current (iterated) solution |
[in] | dd | DoF Distribution |
Implements ug::IDomainDiscretization< TAlgebra >.
References ug::CreateSubsetGroups(), dim, ug::DimensionOfSubset(), ug::GetElemDiscOnSubset(), ug::post_assemble_loop(), ug::prep_assemble_loop(), PROFILE_FUNC_GROUP, ug::SubsetGroup::regular_grid(), ug::SubsetGroup::size(), UG_CATCH_THROW, and UG_THROW.
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::prepare_timestep_elem().
|
private |
This function prepares the global discretization for a time-stepping scheme by calling the "prepare_timestep_elem" methods of all passed element discretizations on one given subset.
[in] | vElemDisc | element discretizations |
[in] | dd | DoF Distribution |
[in] | si | subset index |
[in] | bNonRegularGrid | flag to indicate if non regular grid is used |
[in] | vSol | current and previous solutions |
|
inline |
removes a constraint from the assembling process
This function removes a previously added IConstraint from the assembling. The constraint's assemblings are no longer called.
[in] | pp | constraint to be removed |
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::m_vConstraint, and UG_LOG.
|
inline |
removes a element discretization from the assembling process
This function removes a previously added IElemDisc from the assembling. The element-wise assemblings are no longer called.
[in] | elem | elem disc to be removed |
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::m_vDomainElemDisc, and UG_LOG.
|
inline |
removes a element discretization from the assembling process
This function removes a previously added IElemDisc from the assembling. The element-wise assemblings are no longer called.
[in] | elem | elem disc to be removed |
References ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::m_vDomainElemError, and UG_LOG.
|
protected |
References UG_THROW.
|
protected |
|
protected |
set the approximation space in the elem discs and extract IElemDiscs
References boost::get(), and UG_THROW.
|
protected |
References boost::get(), and UG_THROW.
|
protected |
|
static |
world dimension
|
protected |
|
protected |
|
protected |
current approximation space
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::add(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::add_elem_error_indicator(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::approximation_space(), ug::LSGFDomainDiscretization< TDomain, TAlgebra, TExtrapolation >::check_elem_lsf(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::dd(), ug::LSGFDomainDiscretization< TDomain, TAlgebra, TExtrapolation >::exclude_subsets(), ug::LSGFDomainDiscretization< TDomain, TAlgebra, TExtrapolation >::set_Dirichlet_on_if_for(), ug::LSGFDomainDiscretization< TDomain, TAlgebra, TExtrapolation >::set_Neumann0_on_if_for(), and ug::LSGFDomainDiscretization< TDomain, TAlgebra, TExtrapolation >::set_plain_Dirichlet_on_if_for().
|
protected |
this object provides tools to adapt the assemble routine
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::ass_tuner().
|
protected |
vector holding all registered constraints
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::add(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::constraint(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::num_constraints(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::remove().
|
protected |
vector holding all registered elem discs
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::add(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::remove().
|
protected |
vector holding all registered elem discs
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::add_elem_error_indicator(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::remove_elem_error_indicator().
|
protected |
vector holding all registered elem discs
|
protected |
vector holding all registered elem discs