|
DUBeat 1.0.1
High-order discontinuous Galerkin methods and applications to cardiac electrophysiology
|
Class representing the resolution of time-dependent problems using discontinuous Galerkin methods. More...
#include <model_DG_t.hpp>


Public Member Functions | |
| ModelDG_t (std::string model_name) | |
| Constructor. | |
| ModelDG_t (ModelDG_t< basis > &ModelDG_t)=default | |
| Default copy constructor. | |
| ModelDG_t (const ModelDG_t< basis > &ModelDG_t)=default | |
| Default const copy constructor. | |
| ModelDG_t (ModelDG_t< basis > &&ModelDG_t)=default | |
| Default move constructor. | |
| virtual | ~ModelDG_t ()=default |
| Destructor. | |
Public Member Functions inherited from ModelDG< basis > | |
| ModelDG (std::string model_name) | |
| Constructor. | |
| ModelDG (ModelDG< basis > &ModelDG)=default | |
| Default copy constructor. | |
| ModelDG (const ModelDG< basis > &ModelDG)=default | |
| Default const copy constructor. | |
| ModelDG (ModelDG< basis > &&ModelDG)=default | |
| Default move constructor. | |
| unsigned int | get_dofs_per_cell () const |
| Return the number of degrees of freedom per element. | |
| virtual | ~ModelDG ()=default |
| Destructor. | |
Protected Member Functions | |
| virtual void | declare_parameters (lifex::ParamHandler ¶ms) const override |
| Override for declaration of additional parameters. | |
| virtual void | parse_parameters (lifex::ParamHandler ¶ms) override |
| Override to parse additional parameters. | |
| virtual void | time_initialization () |
| Setup for the time-dependent problems at the initial time-step. | |
| virtual void | update_time () |
| To perform the time increment. | |
| virtual void | intermediate_error_print (const lifex::LinAlg::MPI::Vector &solution_owned, const lifex::LinAlg::MPI::Vector &solution_ex_owned, const std::shared_ptr< dealii::Function< lifex::dim > > &u_ex, const char *solution_name=(char *)"u") |
| Computation of the \(L^\infty\) error at an intermediate time-step. | |
| void | run () override |
| Override for the simulation run. | |
Protected Member Functions inherited from ModelDG< basis > | |
| virtual void | setup_system () |
| Setup of the problem before the resolution. | |
| void | make_sparsity_pattern (const DoFHandlerDG< basis > &dof, dealii::DynamicSparsityPattern &sparsity, const dealii::AffineConstraints< double > &constraints=dealii::AffineConstraints< double >(), const bool keep_constrained_dofs=true, const dealii::types::subdomain_id subdomain_id=dealii::numbers::invalid_subdomain_id) |
| Creation of the sparsity pattern to assign to the system matrix before assembling. | |
| void | initialize_solution (lifex::LinAlg::MPI::Vector &solution_owned, lifex::LinAlg::MPI::Vector &solution) |
| To inizialize the solutions using the deal.II reinit. | |
| virtual void | assemble_system ()=0 |
| Assembly of the linear system, pure virtual. | |
| void | create_mesh () |
| Load the mesh from the default path. | |
| void | create_mesh (std::string mesh_path) |
| Load the mesh from a user-defined path. | |
| void | solve_system () |
| System solving. | |
| void | compute_errors (const lifex::LinAlg::MPI::Vector &solution_owned, const lifex::LinAlg::MPI::Vector &solution_ex_owned, const std::shared_ptr< dealii::Function< lifex::dim > > &u_ex, const std::shared_ptr< dealii::Function< lifex::dim > > &grad_u_ex, const char *solution_name=(char *)"u") const |
| To compute the \(L^\infty\) error, the \(L^2\) error, the \(H^1\) error and the \(DG\) error at the end of system solving, it exploits the DGComputeErrors<basis> class. | |
| virtual void | output_results (std::string output_name="solution") const |
| Output of results. | |
| virtual void | conversion_to_fem (lifex::LinAlg::MPI::Vector &sol_owned) |
| To convert a discretized solution from modal to nodal basis (does nothing if problem is already in nodal basis), in-place version. | |
| virtual lifex::LinAlg::MPI::Vector | conversion_to_fem (const lifex::LinAlg::MPI::Vector &sol_owned) const |
| To convert a discretized solution from modal to nodal basis (does nothing if problem is already in nodal basis), const version. | |
| virtual void | conversion_to_fem (lifex::LinAlg::MPI::Vector &sol_owned, const std::string fem_file_path, const unsigned int degree_fem=1, const double scaling_factor=1) const |
| virtual void | conversion_to_dub (lifex::LinAlg::MPI::Vector &sol_owned) |
| To convert a discretized solution in Dubiner basis (only for problems using Dubiner basis). | |
| virtual lifex::LinAlg::MPI::Vector | conversion_to_dub (const lifex::LinAlg::MPI::Vector &sol_owned) const |
| To convert a discretized solution in Dubiner basis (only for problems using Dubiner basis). | |
| virtual void | conversion_to_dub (lifex::LinAlg::MPI::Vector &sol_owned, const std::string fem_file_path, const unsigned int degree_fem=1, const double scaling_factor=1) const |
| void | discretize_analytical_solution (const std::shared_ptr< dealii::Function< lifex::dim > > &u_analytical, lifex::LinAlg::MPI::Vector &sol_owned) |
| Conversion of an analytical solution from FEM to basis coefficients. | |
| void | conversion_to_fem (lifex::LinAlg::MPI::Vector &sol_owned) |
| Conversion of a discretized solution from Dubiner coefficients to FEM coefficients. | |
| lifex::LinAlg::MPI::Vector | conversion_to_fem (const lifex::LinAlg::MPI::Vector &sol_owned) const |
| Conversion to FEM coefficients, const version. | |
| void | conversion_to_fem (lifex::LinAlg::MPI::Vector &sol_owned, const std::string fem_file_path, const unsigned int degree_fem, const double scaling_factor) const |
| void | conversion_to_dub (lifex::LinAlg::MPI::Vector &sol_owned) |
| Conversion of a discretized solution from FEM coefficients to Dubiner coefficients. | |
| lifex::LinAlg::MPI::Vector | conversion_to_dub (const lifex::LinAlg::MPI::Vector &sol_owned) const |
| Conversion to DUB coefficients, const version. | |
| void | conversion_to_dub (lifex::LinAlg::MPI::Vector &sol_owned, const std::string fem_file_path, const unsigned int degree_fem, const double scaling_factor) const |
| void | discretize_analytical_solution (const std::shared_ptr< dealii::Function< lifex::dim > > &u_analytical, lifex::LinAlg::MPI::Vector &sol_owned) |
| Conversion of an analytical solution from FEM to basis coefficients. | |
| void | discretize_analytical_solution (const std::shared_ptr< dealii::Function< lifex::dim > > &u_analytical, lifex::LinAlg::MPI::Vector &sol_owned) |
| Conversion of an analytical solution from FEM to basis coefficients. | |
Protected Attributes | |
| double | prm_time_init |
| Initial time. | |
| double | prm_time_final |
| Final time. | |
| double | prm_time_step |
| Time-step amplitude. | |
| unsigned int | prm_bdf_order |
| BDF order. | |
| double | time |
| Current time. | |
| unsigned int | timestep_number |
| Current time-step number. | |
| lifex::utils::BDFHandler< lifex::LinAlg::MPI::Vector > | bdf_handler |
| BDF time advancing handler. | |
| lifex::LinAlg::MPI::Vector | solution_bdf |
| BDF solution, with ghost entries. | |
| lifex::LinAlg::MPI::Vector | solution_ext |
| BDF extrapolated solution, with ghost entries. | |
Protected Attributes inherited from ModelDG< basis > | |
| const std::string | model_name |
| Name of the class/problem. | |
| unsigned int | prm_fe_degree |
| Polynomials degree. | |
| unsigned int | prm_n_refinements |
| Mesh refinement level (>=1). | |
| double | prm_penalty_coeff |
| DG Penalty coefficient. | |
| double | prm_stability_coeff |
| DG stabilty coefficient. | |
| double | scaling_factor = 1 |
| Scaling factor. | |
| std::shared_ptr< lifex::utils::MeshHandler > | triangulation |
| Triangulation (internal use for useful already implemented methods). | |
| unsigned int | dofs_per_cell |
| Number of degrees of freedom per cell. | |
| DoFHandlerDG< basis > | dof_handler |
| DoFHandler (internal use for useful already implemented methods). | |
| std::shared_ptr< DUBFEMHandler< basis > > | dub_fem_values |
| Member used for conversions between analytical, nodal and modal representations of the solutions. | |
| std::unique_ptr< AssembleDG< basis > > | assemble |
| Matrix assembler. | |
| lifex::utils::LinearSolverHandler< lifex::LinAlg::MPI::Vector > | linear_solver |
| Linear solver handler. | |
| lifex::utils::PreconditionerHandler | preconditioner |
| Preconditioner handler. | |
| lifex::LinAlg::MPI::SparseMatrix | matrix |
| Distributed matrix of the linear system. | |
| lifex::LinAlg::MPI::Vector | rhs |
| Distributed right hand side vector of the linear system. | |
| lifex::LinAlg::MPI::Vector | solution_owned |
| Distributed solution vector, without ghost entries. | |
| lifex::LinAlg::MPI::Vector | solution |
| Distributed solution vector, with ghost entries. | |
| lifex::LinAlg::MPI::Vector | solution_ex_owned |
| Distributed exact solution vector, without ghost entries. | |
| lifex::LinAlg::MPI::Vector | solution_ex |
| Distributed exact solution vector, without ghost entries. | |
| std::shared_ptr< lifex::utils::FunctionDirichlet > | u_ex |
| Pointer to exact solution function. | |
| std::shared_ptr< dealii::Function< lifex::dim > > | grad_u_ex |
| Pointer to exact gradient solution Function. | |
| std::shared_ptr< dealii::Function< lifex::dim > > | f_ex |
| Known forcing term. | |
| std::shared_ptr< dealii::Function< lifex::dim > > | g_n |
| Neumann boundary conditions. | |
Class representing the resolution of time-dependent problems using discontinuous Galerkin methods.
Definition at line 61 of file model_DG_t.hpp.
|
inline |
Constructor.
Definition at line 65 of file model_DG_t.hpp.
|
default |
Default copy constructor.
|
default |
Default const copy constructor.
|
default |
Default move constructor.
|
overrideprotectedvirtual |
Override for declaration of additional parameters.
Reimplemented from ModelDG< basis >.
Reimplemented in DUBeat::models::MonodomainFHNDG< basis >.
Definition at line 134 of file model_DG_t.hpp.
|
protectedvirtual |
Computation of the \(L^\infty\) error at an intermediate time-step.
Definition at line 256 of file model_DG_t.hpp.
|
overrideprotectedvirtual |
Override to parse additional parameters.
Reimplemented from ModelDG< basis >.
Reimplemented in DUBeat::models::MonodomainFHNDG< basis >.
Definition at line 194 of file model_DG_t.hpp.
|
overrideprotectedvirtual |
Override for the simulation run.
Reimplemented from ModelDG< basis >.
Reimplemented in DUBeat::models::MonodomainFHNDG< basis >.
Definition at line 298 of file model_DG_t.hpp.
|
protectedvirtual |
Setup for the time-dependent problems at the initial time-step.
Reimplemented in DUBeat::models::MonodomainFHNDG< basis >.
Definition at line 233 of file model_DG_t.hpp.
|
protectedvirtual |
To perform the time increment.
Reimplemented in DUBeat::models::MonodomainFHNDG< basis >.
Definition at line 281 of file model_DG_t.hpp.
|
protected |
BDF time advancing handler.
Definition at line 125 of file model_DG_t.hpp.
|
protected |
BDF order.
Definition at line 119 of file model_DG_t.hpp.
|
protected |
Final time.
Definition at line 115 of file model_DG_t.hpp.
|
protected |
Initial time.
Definition at line 113 of file model_DG_t.hpp.
|
protected |
Time-step amplitude.
Definition at line 117 of file model_DG_t.hpp.
|
protected |
BDF solution, with ghost entries.
Definition at line 127 of file model_DG_t.hpp.
|
protected |
BDF extrapolated solution, with ghost entries.
Definition at line 129 of file model_DG_t.hpp.
|
protected |
Current time.
Definition at line 121 of file model_DG_t.hpp.
|
protected |
Current time-step number.
Definition at line 123 of file model_DG_t.hpp.