#include <one_step_theta.hpp>
|
| using | VectorType = dealii::LinearAlgebra::distributed::Vector< number > |
| |
| using | BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector< number > |
| |
|
| | OneStepTheta (const PDEOperator &pde_operator, const TimeIntegratorData< number > &time_integrator_data_in, const LinearSolverData< number > &linear_solver_data_in) |
| |
| unsigned int | required_solution_history_size () const override |
| |
| void | perform_time_step (const number current_time, const number time_step, SolutionHistory< VectorType > &solution_history, const std::function< void(number, number, VectorType &, const VectorType &)> &pre_processing, const std::function< void(number, number, VectorType &, const VectorType &)> &post_processing) override |
| |
| void | reinit (const VectorType &vector_template) override |
| |
| void | reinit (const SolutionHistory< VectorType > &solution_history) override |
| |
| | TimeIntegratorBase (const TimeIntegratorData< number > &time_integrator_data_in) |
| |
| virtual | ~TimeIntegratorBase ()=default |
| |
| TimeIntegratorSchemes | get_integrator_type () const |
| |
| void | set_monitoring_vector (VectorType &monitoring_vector_in) |
| |
| void | reset_monitoring_vector () |
| |
◆ BlockVectorType
template<typename number , typename PDEOperator >
◆ VectorType
template<typename number , typename PDEOperator >
◆ OneStepTheta()
template<typename number , typename PDEOperator >
| MeltPoolDG::TimeIntegration::OneStepTheta< number, PDEOperator >::OneStepTheta |
( |
const PDEOperator & |
pde_operator, |
|
|
const TimeIntegratorData< number > & |
time_integrator_data_in, |
|
|
const LinearSolverData< number > & |
linear_solver_data_in |
|
) |
| |
|
inline |
◆ perform_time_step()
template<typename number , typename PDEOperator >
| void MeltPoolDG::TimeIntegration::OneStepTheta< number, PDEOperator >::perform_time_step |
( |
const number |
current_time, |
|
|
const number |
time_step, |
|
|
SolutionHistory< VectorType > & |
solution_history, |
|
|
const std::function< void(number, number, VectorType &, const VectorType &)> & |
pre_processing, |
|
|
const std::function< void(number, number, VectorType &, const VectorType &)> & |
post_processing |
|
) |
| |
|
inlineoverridevirtual |
Performs one time step according to the one-step theta method u(t+dt) = u(t) + dt*theta*F(u(t+dt)) + dt*(1-theta)*F(u(t)) So far only a linear operator is possible. This results in a linear system of equations. The right hand side of System consists of quantities known at time t, which are stored in rhs. Current solution of solution history is updated according to the solution of the linear system.
In addition, if monitoring_vector is set in the base class the right-hand-side of the resulting linear equation system is copied to the monitoring vector.
- Parameters
-
| current_time | Current time. |
| time_step | Current time step size. |
| solution_history | Solution history object providing the current and all required previous solutions. |
| pre_processing | Function which is executed at the beginning before the actual time step computations. Three variables are passed to the function: the current time, the vector which is later used as rhs vector in the linear solver, and the current solution. |
| post_processing | Function which is executed at the end of the time step computation. Three variables are passed to the function: the current time after the time step, i.e. n+1, the solution vector which is then the final solution of the time step and the current solution. Note, that these to vectors are the same. |
- Exceptions
-
| The | function throws an exception if the linear solver does not converge. |
Implements MeltPoolDG::TimeIntegration::TimeIntegratorBase< number >.
◆ reinit() [1/2]
template<typename number , typename PDEOperator >
◆ reinit() [2/2]
template<typename number , typename PDEOperator >
◆ required_solution_history_size()
template<typename number , typename PDEOperator >
◆ buffer
template<typename number , typename PDEOperator >
◆ dt_
template<typename number , typename PDEOperator >
◆ linear_solver_data
template<typename number , typename PDEOperator >
◆ old_solution_
template<typename number , typename PDEOperator >
◆ old_time_
template<typename number , typename PDEOperator >
◆ pde_operator
template<typename number , typename PDEOperator >
◆ right_hand_side_
template<typename number , typename PDEOperator >
◆ Theta_
template<typename number , typename PDEOperator >
The documentation for this class was generated from the following file: