ug4
|
generic domain discretization implementing the interface More...
#include <domain_disc.h>
Public Types | |
typedef TAlgebra | algebra_type |
Type of algebra. | |
typedef ApproximationSpace< TDomain > | approx_space_type |
Type of approximation space. | |
typedef TDomain | domain_type |
Type of Domain. | |
typedef CPUAlgebra::vector_type | error_vector_type |
Type of error vector. | |
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. | |
![]() | |
typedef TAlgebra | algebra_type |
Algebra type. | |
typedef TAlgebra::matrix_type | matrix_type |
Type of algebra matrix. | |
typedef TAlgebra::vector_type | vector_type |
Type of algebra vector. | |
![]() | |
typedef CPUAlgebra::vector_type | error_vector_type |
Type of error vector. | |
typedef TAlgebra::vector_type | vector_type |
Type of algebra vector. | |
![]() | |
typedef IElementMarkingStrategy< TDomain > | element_marking_strategy_type |
Type of algebra vector. | |
Public Member Functions | |
void | add (SmartPtr< IDiscretizationItem< TDomain, TAlgebra > > di) |
adds a disc item to the assembling process | |
void | add (SmartPtr< IDomainConstraint< TDomain, TAlgebra > > pp) |
adds a constraint to the assembling process | |
void | add (SmartPtr< IElemDisc< TDomain > > elem) |
adds an element discretization to the assembling process | |
void | add_elem_error_indicator (SmartPtr< IElemError< TDomain > > elem) |
adds an element error indicator to the assembling process | |
virtual void | adjust_solution (vector_type &u, const GridLevel &gl) |
sets dirichlet values in solution vector | |
virtual void | adjust_solution (vector_type &u, ConstSmartPtr< DoFDistribution > dd) |
sets dirichlet values in solution vector | |
virtual void | adjust_solution (vector_type &u, number time, const GridLevel &gl) |
sets dirichlet values in solution vector | |
virtual void | adjust_solution (vector_type &u, number time, ConstSmartPtr< DoFDistribution > dd) |
sets dirichlet values in solution vector | |
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 | |
virtual void | assemble_defect (vector_type &d, const vector_type &u, ConstSmartPtr< DoFDistribution > dd) |
assembles Defect | |
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 | |
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 | |
virtual void | assemble_jacobian (matrix_type &J, const vector_type &u, const GridLevel &gl) |
assembles Jacobian (or Approximation of Jacobian) | |
virtual void | assemble_jacobian (matrix_type &J, const vector_type &u, ConstSmartPtr< DoFDistribution > dd) |
assembles Jacobian (or Approximation of Jacobian) | |
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) | |
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) | |
virtual void | assemble_linear (matrix_type &A, vector_type &b, ConstSmartPtr< DoFDistribution > dd) |
Assembles Matrix and Right-Hand-Side for a linear problem. | |
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. | |
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. | |
virtual void | assemble_linear (matrix_type &mat, vector_type &rhs, const GridLevel &gl) |
Assembles Matrix and Right-Hand-Side for a linear problem. | |
virtual void | assemble_mass_matrix (matrix_type &M, const vector_type &u, const GridLevel &gl) |
assembles the mass matrix | |
virtual void | assemble_mass_matrix (matrix_type &M, const vector_type &u, ConstSmartPtr< DoFDistribution > dd) |
assembles the mass matrix | |
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. | |
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 | |
virtual void | assemble_rhs (vector_type &rhs, const GridLevel &gl) |
assembles the rhs | |
virtual void | assemble_rhs (vector_type &rhs, const vector_type &u, const GridLevel &gl) |
assembles the rhs | |
virtual void | assemble_rhs (vector_type &rhs, const vector_type &u, ConstSmartPtr< DoFDistribution > dd) |
assembles rhs | |
virtual void | assemble_rhs (vector_type &rhs, ConstSmartPtr< DoFDistribution > dd) |
assembles rhs | |
virtual void | assemble_stiffness_matrix (matrix_type &A, const vector_type &u, const GridLevel &gl) |
assembles the stiffness matrix | |
virtual void | assemble_stiffness_matrix (matrix_type &A, const vector_type &u, ConstSmartPtr< DoFDistribution > dd) |
assembles the stiffness matrix | |
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) |
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) |
virtual SmartPtr< IConstraint< TAlgebra > > | constraint (size_t i) |
returns the i'th constraint | |
DomainDiscretizationBase (SmartPtr< approx_space_type > pApproxSpace) | |
default Constructor | |
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 | |
virtual void | finish_timestep_elem (ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const GridLevel &gl) |
finishes timestep | |
virtual void | finish_timestep_elem (ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, ConstSmartPtr< DoFDistribution > dd) |
finishes timestep | |
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 | |
virtual void | mark_with_strategy (IRefiner &refiner, SmartPtr< IElementMarkingStrategy< TDomain > > strategy) |
virtual size_t | num_constraints () const |
returns number of registered constraints | |
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 | |
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 | |
void | remove (SmartPtr< IDomainConstraint< TDomain, TAlgebra > > pp) |
removes a constraint from the assembling process | |
void | remove (SmartPtr< IElemDisc< TDomain > > elem) |
removes a element discretization from the assembling process | |
void | remove_elem_error_indicator (SmartPtr< IElemError< TDomain > > elem) |
removes a element discretization from the assembling process | |
virtual | ~DomainDiscretizationBase () |
virtual destructor | |
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 |
![]() | |
void | adjust_solution (vector_type &u, number time) |
adjust solution on surface level | |
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 | |
void | assemble_jacobian (matrix_type &J, ConstSmartPtr< VectorTimeSeries< vector_type > > vSol, const number s_a) |
assembles jacobian on surface level | |
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 | |
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 | |
virtual void | finish_timestep (ConstSmartPtr< VectorTimeSeries< vector_type > > vSol) |
void | finish_timestep_elem (ConstSmartPtr< VectorTimeSeries< vector_type > > vSol) |
finishes timestep on surface level | |
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 | |
virtual | ~IDomainDiscretization () |
![]() | |
void | adjust_solution (vector_type &u) |
virtual void | adjust_solution (vector_type &u, const GridLevel &gl)=0 |
sets dirichlet values in solution vector | |
void | assemble_defect (vector_type &d, const vector_type &u) |
virtual void | assemble_defect (vector_type &d, const vector_type &u, const GridLevel &gl)=0 |
assembles Defect | |
void | assemble_jacobian (matrix_type &J, const vector_type &u) |
virtual void | assemble_jacobian (matrix_type &J, const vector_type &u, const GridLevel &gl)=0 |
assembles Jacobian (or Approximation of Jacobian) | |
void | assemble_linear (matrix_type &A, vector_type &b) |
virtual void | assemble_linear (matrix_type &A, vector_type &b, const GridLevel &gl)=0 |
Assembles Matrix and Right-Hand-Side for a linear problem. | |
void | assemble_mass_matrix (matrix_type &M, const vector_type &u) |
virtual void | assemble_mass_matrix (matrix_type &M, const vector_type &u, const GridLevel &gl) |
assembles mass matrix | |
void | assemble_rhs (vector_type &b) |
virtual void | assemble_rhs (vector_type &b, const GridLevel &gl)=0 |
Assembles Right-Hand-Side for a linear problem. | |
virtual void | assemble_rhs (vector_type &rhs, const vector_type &u) |
virtual void | assemble_rhs (vector_type &rhs, const vector_type &u, const GridLevel &gl)=0 |
assembles rhs | |
void | assemble_stiffness_matrix (matrix_type &A, const vector_type &u) |
virtual void | assemble_stiffness_matrix (matrix_type &A, const vector_type &u, const GridLevel &gl) |
assembles stiffness matrix | |
virtual | ~IAssemble () |
Virtual Destructor. | |
![]() | |
virtual void | calc_error (const vector_type &u, const GridLevel &gl, error_vector_type *u_vtk=NULL)=0 |
virtual void | calc_error (const vector_type &u, ConstSmartPtr< DoFDistribution > dd, error_vector_type *u_vtk=NULL)=0 |
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)=0 |
Transient version. | |
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)=0 |
Transient version. | |
virtual | ~IDomainErrorIndicator () |
![]() | |
virtual | ~IDomainMarker () |
Static Public Attributes | |
static const int | dim = TDomain::dim |
world dimension | |
Protected Member Functions | |
ConstSmartPtr< DoFDistribution > | dd (const GridLevel &gl) const |
returns the level dof distribution | |
void | update_constraints () |
void | update_disc_items () |
void | update_elem_discs () |
set the approximation space in the elem discs and extract IElemDiscs | |
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 | |
SmartPtr< AssemblingTuner< TAlgebra > > | m_spAssTuner |
this object provides tools to adapt the assemble routine | |
std::vector< SmartPtr< IDomainConstraint< TDomain, TAlgebra > > > | m_vConstraint |
vector holding all registered constraints | |
std::vector< SmartPtr< IElemDisc< TDomain > > > | m_vDomainElemDisc |
vector holding all registered elem discs | |
std::vector< SmartPtr< IElemError< TDomain > > > | m_vDomainElemError |
vector holding all registered elem discs | |
std::vector< IElemDisc< TDomain > * > | m_vElemDisc |
vector holding all registered elem discs | |
std::vector< IElemError< TDomain > * > | m_vElemError |
vector holding all registered elem discs | |
Private Types | |
typedef TGlobAssembler | gass_type |
Type of the global assembler. | |
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(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::adjust_solution(), and 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, 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(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_defect(), and 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, 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(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_jacobian(), and 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, 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, 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(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_linear(), and 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, 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, 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, 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(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_rhs(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_rhs(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_rhs(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_rhs(), and 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 |
|
virtual |
References ug::AddLocalVector(), ug::SurfaceView::ALL, ug::GridFunction< TDomain, TAlgebra >::approx_space(), ug::CollectCornerCoordinates(), ug::CollectIErrEstData(), ug::CreateSubsetGroups(), ug::CT_ALL, 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(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::calc_error(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::calc_error(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::calc_error().
|
inlinevirtual |
|
virtual |
References ug::AddLocalVector(), ug::SurfaceView::ALL, ug::GridFunction< TDomain, TAlgebra >::approx_space(), ug::CollectCornerCoordinates(), ug::CollectIErrEstData(), ug::CreateSubsetGroups(), ug::CT_ALL, 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 >::adjust_solution(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_defect(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_defect(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_jacobian(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_jacobian(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_linear(), 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_rhs(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_rhs(), 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 >::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(), 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(), 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(), and 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(), 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 UG_THROW.
|
protected |
References 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(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::add_elem_error_indicator(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::approximation_space(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::approximation_space(), and ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::dd().
|
protected |
this object provides tools to adapt the assemble routine
Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::ass_tuner(), and 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