ug4
|
Singly Diagonal Implicit Runge Kutta Method. More...
#include <theta_time_step.h>
Public Types | |
typedef TAlgebra | algebra_type |
Type of algebra. More... | |
typedef IDomainDiscretization< TAlgebra > | domain_discretization_type |
Domain Discretization 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::MultiStepTimeDiscretization< TAlgebra > | |
typedef TAlgebra | algebra_type |
Type of algebra. More... | |
typedef IDomainDiscretization< algebra_type > | domain_discretization_type |
Domain Discretization type. More... | |
typedef CPUAlgebra::vector_type | error_vector_type |
Type of algebra 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::ITimeDiscretization< TAlgebra > | |
typedef TAlgebra | algebra_type |
Algebra type. More... | |
typedef IDomainDiscretization< TAlgebra > | domain_discretization_type |
Domain Discretization type. More... | |
typedef algebra_type::vector_type | vector_type |
Vector type. 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 Member Functions | |
void | adjust_solution (vector_type &u, const GridLevel &gl) |
sets dirichlet values in solution vector More... | |
void | assemble_defect (vector_type &d, const vector_type &u, const GridLevel &gl) |
assembles Defect More... | |
void | assemble_jacobian (matrix_type &J, const vector_type &u, const GridLevel &gl) |
assembles Jacobian (or Approximation of Jacobian) More... | |
void | assemble_linear (matrix_type &A, vector_type &b, const GridLevel &gl) |
Assembles Matrix and Right-Hand-Side for a linear problem. More... | |
void | assemble_rhs (vector_type &b, const GridLevel &gl) |
Assembles Right-Hand-Side for a linear problem. More... | |
void | assemble_rhs (vector_type &b, const vector_type &u, const GridLevel &gl) |
assembles rhs More... | |
virtual size_t | num_stages () const |
returns number of stages More... | |
virtual void | prepare_step (SmartPtr< VectorTimeSeries< vector_type > > prevSol, number dt) |
prepares the assembling of Defect/Jacobian for a time step More... | |
SDIRK (SmartPtr< IDomainDiscretization< TAlgebra > > spDD) | |
default constructor (implicit Euler) More... | |
SDIRK (SmartPtr< IDomainDiscretization< TAlgebra > > spDD, int order) | |
theta = 1.0 -> Implicit Euler, 0.0 -> Explicit Euler More... | |
void | set_order (int order) |
sets the scheme More... | |
virtual void | set_stage (size_t stage) |
sets the stage More... | |
virtual | ~SDIRK () |
Public Member Functions inherited from ug::MultiStepTimeDiscretization< TAlgebra > | |
void | calc_error (const vector_type &u) |
void | calc_error (const vector_type &u, error_vector_type &u_vtk) |
void | calc_error (const vector_type &u, error_vector_type *u_vtk) |
Error estimator ///. More... | |
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) More... | |
void | invalidate_error () |
bool | is_error_valid () |
returns whether error indicators are valid More... | |
MultiStepTimeDiscretization (SmartPtr< IDomainDiscretization< algebra_type > > spDD) | |
constructor More... | |
virtual size_t | num_prev_steps () const |
returns number of previous time steps needed More... | |
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 More... | |
virtual | ~MultiStepTimeDiscretization () |
Public Member Functions inherited from ug::ITimeDiscretization< TAlgebra > | |
virtual SmartPtr< IConstraint< TAlgebra > > | constraint (size_t i) |
returns the i'th constraint More... | |
SmartPtr< IDomainDiscretization< TAlgebra > > | domain_disc () const |
return underlying domain disc More... | |
ITimeDiscretization (SmartPtr< IDomainDiscretization< TAlgebra > > spDD) | |
create and set domain discretization More... | |
virtual size_t | num_constraints () const |
returns the number of constraint More... | |
void | prepare_step_elem (SmartPtr< VectorTimeSeries< vector_type > > prevSol, number dt) |
prepares the assembling of Defect/Jacobian for a time step More... | |
void | finish_step_elem (SmartPtr< VectorTimeSeries< vector_type > > currSol) |
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) |
virtual void | assemble_mass_matrix (matrix_type &M, const vector_type &u, const GridLevel &gl) |
assembles mass matrix More... | |
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 void | assemble_stiffness_matrix (matrix_type &A, const vector_type &u, const GridLevel &gl) |
assembles stiffness matrix More... | |
virtual | ~IAssemble () |
Virtual Destructor. More... | |
Protected Member Functions | |
virtual number | update_scaling (std::vector< number > &vSM, std::vector< number > &vSA, number dt) |
virtual number | update_scaling (std::vector< number > &vSM, std::vector< number > &vSA, number dt, number currentTime, ConstSmartPtr< VectorTimeSeries< vector_type > > prevSol) |
Error estimator ///. More... | |
Protected Attributes | |
number | m_lastTime |
int | m_order |
size_t | m_stage |
number | m_Time0 |
Protected Attributes inherited from ug::MultiStepTimeDiscretization< TAlgebra > | |
number | m_dt |
Time Step size. More... | |
number | m_futureTime |
Future Time. More... | |
SmartPtr< VectorTimeSeries< vector_type > > | m_pPrevSol |
Previous solutions. More... | |
size_t | m_prevSteps |
number of previous steps needed. More... | |
std::vector< number > | m_vScaleMass |
Scaling for mass part. More... | |
std::vector< number > | m_vScaleStiff |
Scaling for stiffness part. More... | |
Protected Attributes inherited from ug::ITimeDiscretization< TAlgebra > | |
SmartPtr< IDomainDiscretization< TAlgebra > > | m_spDomDisc |
Domain Discretization. More... | |
Singly Diagonal Implicit Runge Kutta Method.
typedef TAlgebra ug::SDIRK< TAlgebra >::algebra_type |
Type of algebra.
typedef IDomainDiscretization<TAlgebra> ug::SDIRK< TAlgebra >::domain_discretization_type |
Domain Discretization type.
typedef algebra_type::matrix_type ug::SDIRK< TAlgebra >::matrix_type |
Type of algebra matrix.
typedef algebra_type::vector_type ug::SDIRK< TAlgebra >::vector_type |
Type of algebra vector.
|
inline |
default constructor (implicit Euler)
References ug::MultiStepTimeDiscretization< TAlgebra >::m_prevSteps.
|
inline |
theta = 1.0 -> Implicit Euler, 0.0 -> Explicit Euler
References ug::SDIRK< TAlgebra >::m_order, ug::MultiStepTimeDiscretization< TAlgebra >::m_prevSteps, and ug::SDIRK< TAlgebra >::set_order().
|
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 |
Reimplemented from ug::MultiStepTimeDiscretization< TAlgebra >.
References PROFILE_BEGIN_GROUP, and UG_CATCH_THROW.
|
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 |
Reimplemented from ug::MultiStepTimeDiscretization< TAlgebra >.
References UG_CATCH_THROW.
|
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 |
Reimplemented from ug::MultiStepTimeDiscretization< TAlgebra >.
References UG_CATCH_THROW.
|
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 |
Reimplemented from ug::MultiStepTimeDiscretization< TAlgebra >.
References UG_THROW.
|
virtual |
Assembles Right-Hand-Side for a linear problem.
Assembles Right-Hand-Side for a linear problem
[out] | b | Right-Hand-Side |
[in] | gl | Grid Level |
Reimplemented from ug::MultiStepTimeDiscretization< TAlgebra >.
References UG_THROW.
|
virtual |
|
inlinevirtual |
returns number of stages
Implements ug::ITimeDiscretization< TAlgebra >.
References ug::SDIRK< TAlgebra >::m_order, and UG_THROW.
|
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 |
Reimplemented from ug::MultiStepTimeDiscretization< TAlgebra >.
References UG_CATCH_THROW.
|
inline |
sets the scheme
References ug::SDIRK< TAlgebra >::m_order, and UG_THROW.
Referenced by ug::SDIRK< TAlgebra >::SDIRK().
|
virtual |
sets the stage
Implements ug::ITimeDiscretization< TAlgebra >.
|
inlineprotectedvirtual |
Error estimator ///.
updates the scaling factors, returns the future time
Implements ug::MultiStepTimeDiscretization< TAlgebra >.
References UG_THROW.
|
protected |
|
protected |