|
void | adjust_solution (vector_type &u, const GridLevel &gl) |
|
void | assemble_defect (vector_type &d, const vector_type &u, const GridLevel &gl) |
| Meant to assemble d(u), but abused here... (u not used!) More...
|
|
void | assemble_jacobian (matrix_type &J, const vector_type &u, const GridLevel &gl) |
| Meant to assemble J(u) c = d(u), but abused here... (u not used!) More...
|
|
void | assemble_linear (matrix_type &A, vector_type &b, const GridLevel &gl) |
| Should return (M+tau A) delta = tau f. More...
|
|
void | assemble_rhs (vector_type &b, const GridLevel &gl) |
|
void | assemble_rhs (vector_type &b, const vector_type &u, const GridLevel &gl) |
|
void | disable_linear_mode () |
|
void | disable_matrix_cache () |
|
void | enable_linear_mode () |
| Some simplifications for linear systems. (In this case, the mass matrix is not re-assembled.) More...
|
|
void | enable_matrix_cache () |
|
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 |
|
void | invalidate () |
| Invalidate all cached operators. More...
|
|
void | invalidate_gamma () |
| Invalidate Gamma operator. More...
|
|
| LinearImplicitEuler (SmartPtr< IDomainDiscretization< algebra_type > > spDD) |
| CTOR. More...
|
|
| LinearImplicitEuler (SmartPtr< IDomainDiscretization< algebra_type > > spDefectDisc, SmartPtr< IDomainDiscretization< algebra_type > > spMatrixJDisc) |
| CTOR. More...
|
|
| LinearImplicitEuler (SmartPtr< IDomainDiscretization< algebra_type > > spDefectDisc, SmartPtr< IDomainDiscretization< algebra_type > > spMatrixJDisc, SmartPtr< IDomainDiscretization< algebra_type > > spGammaDisc) |
| CTOR. More...
|
|
virtual size_t | num_prev_steps () const |
|
virtual size_t | num_stages () const |
|
virtual void | prepare_step (SmartPtr< VectorTimeSeries< vector_type > > prevSol, number dt) |
|
virtual void | prepare_step_elem (SmartPtr< VectorTimeSeries< vector_type > > prevSol, number dt, const GridLevel &gl) |
|
void | set_gamma_disc (SmartPtr< IDomainDiscretization< algebra_type > > spGammaDisc) |
|
void | set_matrix_cache (bool useCache) |
|
virtual void | set_stage (size_t stage) |
|
bool | use_linear_mode () const |
|
virtual | ~LinearImplicitEuler () |
| DTOR. More...
|
|
virtual SmartPtr< IConstraint< TAlgebra > > | constraint (size_t i) |
|
SmartPtr< IDomainDiscretization< TAlgebra > > | domain_disc () const |
|
virtual void | finish_step (SmartPtr< VectorTimeSeries< vector_type > > currSol)=0 |
|
void | finish_step_elem (SmartPtr< VectorTimeSeries< vector_type > > currSol) |
|
void | finish_step_elem (SmartPtr< VectorTimeSeries< vector_type > > currSol) |
|
virtual void | finish_step_elem (SmartPtr< VectorTimeSeries< vector_type > > currSol, const GridLevel &gl)=0 |
|
virtual void | finish_step_elem (SmartPtr< VectorTimeSeries< vector_type > > currSol, const GridLevel &gl)=0 |
|
| ITimeDiscretization (SmartPtr< IDomainDiscretization< TAlgebra > > spDD) |
|
virtual size_t | num_constraints () const |
|
virtual void | prepare_step (SmartPtr< VectorTimeSeries< vector_type > > prevSol, number dt)=0 |
|
void | prepare_step_elem (SmartPtr< VectorTimeSeries< vector_type > > prevSol, number dt) |
|
void | prepare_step_elem (SmartPtr< VectorTimeSeries< vector_type > > prevSol, number dt) |
|
virtual void | prepare_step_elem (SmartPtr< VectorTimeSeries< vector_type > > prevSol, number dt, const GridLevel &gl)=0 |
|
virtual void | prepare_step_elem (SmartPtr< VectorTimeSeries< vector_type > > prevSol, number dt, const GridLevel &gl)=0 |
|
void | adjust_solution (vector_type &u) |
|
virtual void | adjust_solution (vector_type &u, const GridLevel &gl)=0 |
|
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 |
|
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 |
|
void | assemble_linear (matrix_type &A, vector_type &b) |
|
virtual void | assemble_linear (matrix_type &A, vector_type &b, const GridLevel &gl)=0 |
|
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) |
|
void | assemble_rhs (vector_type &b) |
|
virtual void | assemble_rhs (vector_type &b, const GridLevel &gl)=0 |
|
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 |
|
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) |
|
virtual | ~IAssemble () |
|
SmartPtr< IDebugWriter< algebra_type > > | debug_writer () |
|
ConstSmartPtr< IDebugWriter< algebra_type > > | debug_writer () const |
|
bool | debug_writer_valid () const |
|
| DebugWritingObject () |
|
| DebugWritingObject (const DebugWritingObject< algebra_type > &parent) |
|
| DebugWritingObject (SmartPtr< IDebugWriter< algebra_type > > spDebugWriter) |
|
virtual void | set_debug (SmartPtr< IDebugWriter< algebra_type > > spDebugWriter) |
|
virtual | ~DebugWritingObject () |
|
virtual void | set_debug (SmartPtr< IVectorDebugWriter< vector_type > > spDebugWriter) |
|
SmartPtr< IVectorDebugWriter< vector_type > > | vector_debug_writer () |
|
ConstSmartPtr< IVectorDebugWriter< vector_type > > | vector_debug_writer () const |
|
bool | vector_debug_writer_valid () const |
|
| VectorDebugWritingObject () |
|
| VectorDebugWritingObject (SmartPtr< IVectorDebugWriter< vector_type > > spDebugWriter) |
|
void | write_debug (const vector_type &vec, const char *filename) |
|
virtual | ~VectorDebugWritingObject () |
|
template<class TAlgebra>
class ug::LinearImplicitEuler< TAlgebra >
This time stepping scheme discretizes equations of the form
\[ M \partial_t u(t) = f(t) \]
as
\[ (M - \Delta t J) \left( u(t^{k+1}) - u(t^k) \right) = \Delta t \cdot f(t^{k}) \]
Thus, for \(\theta = 1 \) this is the Backward-Euler time stepping.