Reduced Lagrange Multipliers
 
Loading...
Searching...
No Matches
ElasticityProblem< dim, spacedim > Class Template Reference

#include <elasticity.h>

Inheritance diagram for ElasticityProblem< dim, spacedim >:
EnableObserverPointer

Public Member Functions

 ElasticityProblem (const ElasticityProblemParameters< dim, spacedim > &par)
 
void make_grid ()
 
void setup_fe ()
 
void setup_dofs ()
 
void assemble_elasticity_system ()
 
void assemble_coupling ()
 
void run ()
 set up, assemble and run the problem
 
void check_boundary_ids ()
 check on the boundary id that no boundary conditions are in disagreement
 
IndexSet assemble_coupling_sparsity (DynamicSparsityPattern &dsp)
 
void solve ()
 
void refine_and_transfer ()
 
std::string output_solution () const
 
void output_results () const
 
void print_parameters () const
 
void compute_internal_and_boundary_stress (bool openfilefirsttime) const
 compute stresses on boundaries (2D and 3D) and internal (2D) this function makes use of boundary id, so make sure that the ifd starts from 0 and are sequential when importing a mesh, this is automatically taken care of for meshes generated with GridTools output is a txt file containing stresses at each cycle/time
 
void output_pressure (bool openfilefirsttime) const
 compute tissue pressure ($\Lambda$) over the vessels and output to a .txt file (sequential) or .h5 file (mpi)
 
void output_lambda () const
 
std::string output_stresses () const
 
- Public Member Functions inherited from EnableObserverPointer
 EnableObserverPointer ()
 
 EnableObserverPointer (const EnableObserverPointer &)
 
 EnableObserverPointer (EnableObserverPointer &&) noexcept
 
virtual ~EnableObserverPointer ()
 
EnableObserverPointeroperator= (const EnableObserverPointer &)
 
EnableObserverPointeroperator= (EnableObserverPointer &&) noexcept
 
void serialize (Archive &ar, const unsigned int version)
 
unsigned int n_subscriptions () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
unsigned int n_subscriptions () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 

Public Attributes

const ElasticityProblemParameters< dim, spacedim > & par
 
MPI_Comm mpi_communicator
 
ConditionalOStream pcout
 
TimerOutput computing_timer
 
parallel::distributed::Triangulation< spacedim > tria
 
std::unique_ptr< FiniteElement< spacedim > > fe
 
Inclusions< spacedim > inclusions
 
std::unique_ptr< Quadrature< spacedim > > quadrature
 
std::unique_ptr< Quadrature< spacedim - 1 > > face_quadrature_formula
 
DoFHandler< spacedim > dh
 
std::vector< IndexSetowned_dofs
 
std::vector< IndexSetrelevant_dofs
 
AffineConstraints< double > constraints
 
AffineConstraints< double > inclusion_constraints
 
AffineConstraints< double > mean_value_constraints
 
LA::MPI::SparseMatrix stiffness_matrix
 
LA::MPI::SparseMatrix coupling_matrix
 
LA::MPI::SparseMatrix inclusion_matrix
 
LA::MPI::BlockVector solution
 
LA::MPI::BlockVector locally_relevant_solution
 
LA::MPI::BlockVector system_rhs
 
std::vector< std::vector< BoundingBox< spacedim > > > global_bounding_boxes
 
unsigned int cycle = 0
 
FEValuesExtractors::Vector displacement
 
std::map< types::boundary_id, Tensor< 1, spacedim > > forces
 
std::map< types::boundary_id, Tensor< 1, spacedim > > average_displacements
 
std::map< types::boundary_id, Tensor< 1, spacedim > > average_normals
 
std::map< types::boundary_id, double > areas
 
TrilinosWrappers::MPI::Vector sigma_n
 
double current_time = 0.0
 

Additional Inherited Members

- Static Public Member Functions inherited from EnableObserverPointer
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 

Detailed Description

template<int dim, int spacedim = dim>
class ElasticityProblem< dim, spacedim >

Definition at line 314 of file elasticity.h.

Constructor & Destructor Documentation

◆ ElasticityProblem()

template<int dim, int spacedim>
ElasticityProblem< dim, spacedim >::ElasticityProblem ( const ElasticityProblemParameters< dim, spacedim > & par)

Definition at line 25 of file elasticity.cc.

References computing_timer, dh, displacement, inclusions, mpi_communicator, par, pcout, and tria.

Member Function Documentation

◆ assemble_coupling()

◆ assemble_coupling_sparsity()

template<int dim, int spacedim>
IndexSet ElasticityProblem< dim, spacedim >::assemble_coupling_sparsity ( DynamicSparsityPattern & dsp)

Builds coupling sparsity, and returns locally relevant inclusion dofs.

Definition at line 405 of file elasticity.cc.

References IndexSet::add_indices(), computing_timer, constraints, dh, fe, inclusion_constraints, and inclusions.

Referenced by setup_dofs().

◆ assemble_elasticity_system()

◆ check_boundary_ids()

template<int dim, int spacedim>
void ElasticityProblem< dim, spacedim >::check_boundary_ids ( )

check on the boundary id that no boundary conditions are in disagreement

Definition at line 890 of file elasticity.cc.

References par.

Referenced by run().

◆ compute_internal_and_boundary_stress()

template<int dim, int spacedim>
void ElasticityProblem< dim, spacedim >::compute_internal_and_boundary_stress ( bool openfilefirsttime) const

compute stresses on boundaries (2D and 3D) and internal (2D) this function makes use of boundary id, so make sure that the ifd starts from 0 and are sequential when importing a mesh, this is automatically taken care of for meshes generated with GridTools output is a txt file containing stresses at each cycle/time

Definition at line 915 of file elasticity.cc.

References computing_timer, cycle, dh, displacement, face_quadrature_formula, fe, FEFaceValues< int dim, int spacedim >::get_function_gradients(), FEFaceValues< int dim, int spacedim >::get_function_values(), FEFaceValues< int dim, int spacedim >::JxW(), locally_relevant_solution, mpi_communicator, FEFaceValues< int dim, int spacedim >::n_quadrature_points, FEFaceValues< int dim, int spacedim >::normal_vector(), par, FEFaceValues< int dim, int spacedim >::reinit(), Utilities::MPI::sum(), Utilities::MPI::this_mpi_process(), and tria.

Referenced by run().

◆ make_grid()

◆ output_lambda()

template<int dim, int spacedim>
void ElasticityProblem< dim, spacedim >::output_lambda ( ) const

Definition at line 1275 of file elasticity.cc.

References inclusions, locally_relevant_solution, and par.

Referenced by run().

◆ output_pressure()

template<int dim, int spacedim>
void ElasticityProblem< dim, spacedim >::output_pressure ( bool openfilefirsttime) const

◆ output_results()

template<int dim, int spacedim>
void ElasticityProblem< dim, spacedim >::output_results ( ) const

Definition at line 838 of file elasticity.cc.

References computing_timer, cycle, inclusions, output_solution(), par, and DataOutBase::write_pvd_record().

Referenced by run().

◆ output_solution()

◆ output_stresses()

template<int dim, int spacedim = dim>
std::string ElasticityProblem< dim, spacedim >::output_stresses ( ) const

◆ print_parameters()

template<int dim, int spacedim>
void ElasticityProblem< dim, spacedim >::print_parameters ( ) const

Definition at line 870 of file elasticity.cc.

References Utilities::dim_string(), par, pcout, and ParameterHandler::Short.

Referenced by run().

◆ refine_and_transfer()

◆ run()

◆ setup_dofs()

◆ setup_fe()

template<int dim, int spacedim>
void ElasticityProblem< dim, spacedim >::setup_fe ( )

Definition at line 156 of file elasticity.cc.

References computing_timer, face_quadrature_formula, fe, par, and quadrature.

Referenced by run().

◆ solve()

Member Data Documentation

◆ areas

template<int dim, int spacedim = dim>
std::map<types::boundary_id, double> ElasticityProblem< dim, spacedim >::areas

Definition at line 403 of file elasticity.h.

◆ average_displacements

template<int dim, int spacedim = dim>
std::map<types::boundary_id, Tensor<1, spacedim> > ElasticityProblem< dim, spacedim >::average_displacements

Definition at line 401 of file elasticity.h.

◆ average_normals

template<int dim, int spacedim = dim>
std::map<types::boundary_id, Tensor<1, spacedim> > ElasticityProblem< dim, spacedim >::average_normals

Definition at line 402 of file elasticity.h.

◆ computing_timer

◆ constraints

template<int dim, int spacedim = dim>
AffineConstraints<double> ElasticityProblem< dim, spacedim >::constraints

◆ coupling_matrix

template<int dim, int spacedim = dim>
LA::MPI::SparseMatrix ElasticityProblem< dim, spacedim >::coupling_matrix

Definition at line 389 of file elasticity.h.

Referenced by assemble_coupling(), assemble_elasticity_system(), setup_dofs(), and solve().

◆ current_time

template<int dim, int spacedim = dim>
double ElasticityProblem< dim, spacedim >::current_time = 0.0

Definition at line 408 of file elasticity.h.

Referenced by run().

◆ cycle

template<int dim, int spacedim = dim>
unsigned int ElasticityProblem< dim, spacedim >::cycle = 0

◆ dh

◆ displacement

template<int dim, int spacedim = dim>
FEValuesExtractors::Vector ElasticityProblem< dim, spacedim >::displacement

◆ face_quadrature_formula

template<int dim, int spacedim = dim>
std::unique_ptr<Quadrature<spacedim - 1> > ElasticityProblem< dim, spacedim >::face_quadrature_formula

◆ fe

template<int dim, int spacedim = dim>
std::unique_ptr<FiniteElement<spacedim> > ElasticityProblem< dim, spacedim >::fe

◆ forces

template<int dim, int spacedim = dim>
std::map<types::boundary_id, Tensor<1, spacedim> > ElasticityProblem< dim, spacedim >::forces

Definition at line 400 of file elasticity.h.

◆ global_bounding_boxes

template<int dim, int spacedim = dim>
std::vector<std::vector<BoundingBox<spacedim> > > ElasticityProblem< dim, spacedim >::global_bounding_boxes

Definition at line 394 of file elasticity.h.

◆ inclusion_constraints

template<int dim, int spacedim = dim>
AffineConstraints<double> ElasticityProblem< dim, spacedim >::inclusion_constraints

Definition at line 385 of file elasticity.h.

Referenced by assemble_coupling(), assemble_coupling_sparsity(), setup_dofs(), and solve().

◆ inclusion_matrix

template<int dim, int spacedim = dim>
LA::MPI::SparseMatrix ElasticityProblem< dim, spacedim >::inclusion_matrix

Definition at line 390 of file elasticity.h.

Referenced by assemble_coupling(), setup_dofs(), and solve().

◆ inclusions

template<int dim, int spacedim = dim>
Inclusions<spacedim> ElasticityProblem< dim, spacedim >::inclusions

◆ locally_relevant_solution

template<int dim, int spacedim = dim>
LA::MPI::BlockVector ElasticityProblem< dim, spacedim >::locally_relevant_solution

◆ mean_value_constraints

template<int dim, int spacedim = dim>
AffineConstraints<double> ElasticityProblem< dim, spacedim >::mean_value_constraints

Definition at line 386 of file elasticity.h.

◆ mpi_communicator

template<int dim, int spacedim = dim>
MPI_Comm ElasticityProblem< dim, spacedim >::mpi_communicator

◆ owned_dofs

template<int dim, int spacedim = dim>
std::vector<IndexSet> ElasticityProblem< dim, spacedim >::owned_dofs

Definition at line 381 of file elasticity.h.

Referenced by setup_dofs().

◆ par

◆ pcout

template<int dim, int spacedim = dim>
ConditionalOStream ElasticityProblem< dim, spacedim >::pcout

◆ quadrature

template<int dim, int spacedim = dim>
std::unique_ptr<Quadrature<spacedim> > ElasticityProblem< dim, spacedim >::quadrature

Definition at line 378 of file elasticity.h.

Referenced by assemble_elasticity_system(), and setup_fe().

◆ relevant_dofs

template<int dim, int spacedim = dim>
std::vector<IndexSet> ElasticityProblem< dim, spacedim >::relevant_dofs

Definition at line 382 of file elasticity.h.

Referenced by setup_dofs().

◆ sigma_n

template<int dim, int spacedim = dim>
TrilinosWrappers::MPI::Vector ElasticityProblem< dim, spacedim >::sigma_n

Definition at line 404 of file elasticity.h.

◆ solution

template<int dim, int spacedim = dim>
LA::MPI::BlockVector ElasticityProblem< dim, spacedim >::solution

Definition at line 391 of file elasticity.h.

Referenced by output_solution(), refine_and_transfer(), setup_dofs(), and solve().

◆ stiffness_matrix

template<int dim, int spacedim = dim>
LA::MPI::SparseMatrix ElasticityProblem< dim, spacedim >::stiffness_matrix

Definition at line 388 of file elasticity.h.

Referenced by assemble_elasticity_system(), setup_dofs(), and solve().

◆ system_rhs

template<int dim, int spacedim = dim>
LA::MPI::BlockVector ElasticityProblem< dim, spacedim >::system_rhs

Definition at line 393 of file elasticity.h.

Referenced by assemble_coupling(), assemble_elasticity_system(), setup_dofs(), and solve().

◆ tria

template<int dim, int spacedim = dim>
parallel::distributed::Triangulation<spacedim> ElasticityProblem< dim, spacedim >::tria

The documentation for this class was generated from the following files: