|
ug4
|
combine several time discretizations into one More...
#include <composite_time_disc.h>
Inheritance diagram for ug::CompositeTimeDiscretization< TAlgebra >:Classes | |
| class | CompositeAssTuner |
Public Types | |
| typedef TAlgebra | algebra_type |
| typedef algebra_type::matrix_type | matrix_type |
| typedef algebra_type::vector_type | vector_type |
Public Types inherited from ug::IAssemble< TAlgebra > | |
| 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. | |
Public Member Functions | |
| void | add_time_disc (SmartPtr< ITimeDiscretization< TAlgebra > > tDisc) |
| void | adjust_solution (vector_type &u, const GridLevel &gl) |
| sets dirichlet values in solution vector | |
| void | assemble_defect (vector_type &d, const vector_type &u, const GridLevel &gl) |
| assembles Defect | |
| void | assemble_jacobian (matrix_type &J, const vector_type &u, const GridLevel &gl) |
| assembles Jacobian (or Approximation of Jacobian) | |
| void | assemble_linear (matrix_type &A, vector_type &b, const GridLevel &gl) |
| Assembles Matrix and Right-Hand-Side for a linear problem. | |
| void | assemble_rhs (vector_type &b, const GridLevel &gl) |
| void | assemble_rhs (vector_type &b, const vector_type &u, const GridLevel &gl) |
| virtual SmartPtr< IConstraint< TAlgebra > > | constraint (size_t i) |
| returns the i'th constraint | |
| virtual void | finish_step (SmartPtr< VectorTimeSeries< vector_type > > currSol) |
| virtual void | finish_step_elem (SmartPtr< VectorTimeSeries< vector_type > > currSol, const GridLevel &gl) |
| virtual number | future_time () const |
| returns the future time point (i.e. the one that will be computed) | |
| virtual size_t | num_constraints () const |
| returns the number of constraints | |
| virtual size_t | num_prev_steps () const |
| returns number of previous time steps needed | |
| virtual size_t | num_stages () const |
| returns the number of stages | |
| virtual void | prepare_step (SmartPtr< VectorTimeSeries< vector_type > > prevSol, number dt) |
| prepares the assembling of Defect/Jacobian for a time step | |
| virtual void | prepare_step_elem (SmartPtr< VectorTimeSeries< vector_type > > prevSol, number dt, const GridLevel &gl) |
| prepares the assembling of Defect/Jacobian for a time step | |
| virtual void | set_stage (size_t stage) |
| sets the stage | |
| virtual SmartPtr< AssemblingTuner< TAlgebra > > | ass_tuner () |
| virtual ConstSmartPtr< AssemblingTuner< TAlgebra > > | ass_tuner () const |
Public Member Functions inherited from ug::IAssemble< TAlgebra > | |
| 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. | |
Protected Attributes | |
| std::vector< SmartPtr< ITimeDiscretization< TAlgebra > > > | m_vTimeDisc |
combine several time discretizations into one
| typedef TAlgebra ug::CompositeTimeDiscretization< TAlgebra >::algebra_type |
| typedef algebra_type::matrix_type ug::CompositeTimeDiscretization< TAlgebra >::matrix_type |
| typedef algebra_type::vector_type ug::CompositeTimeDiscretization< TAlgebra >::vector_type |
|
inline |
| void ug::CompositeTimeDiscretization< TAlgebra >::adjust_solution | ( | vector_type & | u, |
| const GridLevel & | gl | ||
| ) |
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 |
|
virtual |
Implements ug::IAssemble< TAlgebra >.
References make_sp().
|
virtual |
Implements ug::IAssemble< TAlgebra >.
References UG_THROW.
| void ug::CompositeTimeDiscretization< TAlgebra >::assemble_defect | ( | vector_type & | d, |
| const vector_type & | u, | ||
| const GridLevel & | gl | ||
| ) |
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 |
References UG_COND_THROW.
| void ug::CompositeTimeDiscretization< TAlgebra >::assemble_jacobian | ( | matrix_type & | J, |
| const vector_type & | u, | ||
| const GridLevel & | gl | ||
| ) |
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 |
References UG_COND_THROW.
| void ug::CompositeTimeDiscretization< TAlgebra >::assemble_linear | ( | matrix_type & | A, |
| vector_type & | b, | ||
| const GridLevel & | gl | ||
| ) |
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 |
References UG_COND_THROW.
| void ug::CompositeTimeDiscretization< TAlgebra >::assemble_rhs | ( | vector_type & | b, |
| const GridLevel & | gl | ||
| ) |
References UG_COND_THROW.
| void ug::CompositeTimeDiscretization< TAlgebra >::assemble_rhs | ( | vector_type & | b, |
| const vector_type & | u, | ||
| const GridLevel & | gl | ||
| ) |
References UG_COND_THROW.
|
virtual |
|
virtual |
finishes a time step and allows to adapt data depending on the current solution elemDisc-wise This function is called after the assembling routines at the end of a time step.
| [in] | currSol | the solution at the previous time steps |
| [in] | dt | size of time step |
|
virtual |
finishes a time step and allows to adapt data depending on the current solution element-wise This function is called after the assembling routines at the end of a time step. Within this function "fsh_timestep_elem" is called which allows modifying data depending on the current solution at element-level.
| [in] | currSol | the current solution |
| [in] | dd | DoF Distribution |
|
virtual |
returns the future time point (i.e. the one that will be computed)
References UG_THROW.
|
virtual |
returns the number of constraints
Implements ug::IAssemble< TAlgebra >.
|
virtual |
returns number of previous time steps needed
|
virtual |
returns the number of stages
|
virtual |
prepares the assembling of Defect/Jacobian for a time step
This function supplies the TimeDiscretization with previous time steps and step size before the assembling routines can be called.
| [in] | prevSol | the solution at the previous time steps |
| [in] | dt | size of time step |
|
virtual |
prepares the assembling of Defect/Jacobian for a time step
This function supplies the TimeDiscretization with previous time steps and step size before the assembling routines can be called. A sub-routine at element-level ("prep_timestep_elem") is called within this function.
| [in] | prevSol | the solution at the previous time steps |
| [in] | dt | size of time step |
| [in] | dd | DoF Distribution |
|
virtual |
sets the stage
|
protected |
Referenced by ug::CompositeTimeDiscretization< TAlgebra >::add_time_disc().