#include <elasticity.h>
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 |
![]() | |
EnableObserverPointer () | |
EnableObserverPointer (const EnableObserverPointer &) | |
EnableObserverPointer (EnableObserverPointer &&) noexcept | |
virtual | ~EnableObserverPointer () |
EnableObserverPointer & | operator= (const EnableObserverPointer &) |
EnableObserverPointer & | operator= (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 |
Additional Inherited Members | |
![]() | |
static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
Definition at line 314 of file elasticity.h.
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.
void ElasticityProblem< dim, spacedim >::assemble_coupling | ( | ) |
Definition at line 451 of file elasticity.cc.
References VectorOperation::add, computing_timer, constraints, coupling_matrix, dh, fe, inclusion_constraints, inclusion_matrix, inclusions, par, FEValues< int dim, int spacedim >::reinit(), FEValues< int dim, int spacedim >::shape_value(), and system_rhs.
Referenced by run().
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().
void ElasticityProblem< dim, spacedim >::assemble_elasticity_system | ( | ) |
Definition at line 298 of file elasticity.cc.
References VectorOperation::add, computing_timer, constraints, coupling_matrix, dh, displacement, face_quadrature_formula, fe, FEValues< int dim, int spacedim >::get_quadrature_points(), FEFaceValues< int dim, int spacedim >::JxW(), FEValues< int dim, int spacedim >::JxW(), FEFaceValues< int dim, int spacedim >::n_quadrature_points, FEFaceValues< int dim, int spacedim >::normal_vector(), par, quadrature, FEFaceValues< int dim, int spacedim >::quadrature_point(), FEFaceValues< int dim, int spacedim >::reinit(), FEValues< int dim, int spacedim >::reinit(), FEFaceValues< int dim, int spacedim >::shape_value(), FEValues< int dim, int spacedim >::shape_value(), stiffness_matrix, and system_rhs.
Referenced by run().
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().
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().
void ElasticityProblem< dim, spacedim >::make_grid | ( | ) |
Definition at line 99 of file elasticity.cc.
References GridIn< int dim, int spacedim >::attach_triangulation(), GridGenerator::cheese(), GridGenerator::generate_from_name_and_arguments(), GridGenerator::hyper_ball(), par, pcout, read_grid_and_cad_files(), GridIn< int dim, int spacedim >::read_msh(), and tria.
Referenced by run().
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().
void ElasticityProblem< dim, spacedim >::output_pressure | ( | bool | openfilefirsttime | ) | const |
compute tissue pressure ($\Lambda$) over the vessels and output to a .txt file (sequential) or .h5 file (mpi)
openfilefisrttime | internal variable to open file |
Definition at line 1122 of file elasticity.cc.
References VectorOperation::add, TrilinosWrappers::MPI::Vector::compress(), computing_timer, HDF5::File::create_dataset(), Utilities::MPI::create_evenly_distributed_partitioning(), cycle, inclusions, TrilinosWrappers::MPI::Vector::locally_owned_size(), locally_relevant_solution, mpi_communicator, Utilities::MPI::n_mpi_processes(), par, pcout, TrilinosWrappers::MPI::Vector::print(), TrilinosWrappers::MPI::Vector::size(), HDF5::DataSet::write_hyperslab(), and HDF5::DataSet::write_none().
Referenced by run().
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().
std::string ElasticityProblem< dim, spacedim >::output_solution | ( | ) | const |
Definition at line 755 of file elasticity.cc.
References DataOut< int dim, int spacedim >::add_data_vector(), DataOut< int dim, int spacedim >::attach_dof_handler(), DataOut< int dim, int spacedim >::build_patches(), DataComponentInterpretation::component_is_part_of_vector, cycle, dh, VectorTools::interpolate(), locally_relevant_solution, mpi_communicator, par, Vector< typename Number >::size(), solution, tria, DataOut< int dim, int spacedim >::type_dof_data, and DataOut< int dim, int spacedim >::write_vtu_in_parallel().
Referenced by output_results().
std::string ElasticityProblem< dim, spacedim >::output_stresses | ( | ) | const |
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().
void ElasticityProblem< dim, spacedim >::refine_and_transfer | ( | ) |
Definition at line 706 of file elasticity.cc.
References computing_timer, constraints, dh, KellyErrorEstimator< int dim, int spacedim >::estimate(), inclusions, SolutionTransfer< int dim, typename VectorType, int spacedim >::interpolate(), locally_relevant_solution, par, SolutionTransfer< int dim, typename VectorType, int spacedim >::prepare_for_coarsening_and_refinement(), parallel::distributed::GridRefinement::refine_and_coarsen_fixed_fraction(), parallel::distributed::GridRefinement::refine_and_coarsen_fixed_number(), setup_dofs(), solution, and tria.
Referenced by run().
void ElasticityProblem< dim, spacedim >::run | ( | ) |
set up, assemble and run the problem
Definition at line 1325 of file elasticity.cc.
References assemble_coupling(), assemble_elasticity_system(), check_boundary_ids(), compute_internal_and_boundary_stress(), computing_timer, current_time, cycle, dh, inclusions, locally_relevant_solution, make_grid(), output_lambda(), output_pressure(), output_results(), par, pcout, print_parameters(), refine_and_transfer(), setup_dofs(), setup_fe(), solve(), and tria.
void ElasticityProblem< dim, spacedim >::setup_dofs | ( | ) |
Definition at line 169 of file elasticity.cc.
References DynamicSparsityPattern::add(), assemble_coupling_sparsity(), VectorTools::compute_nonzero_normal_flux_constraints(), computing_timer, constraints, coupling_matrix, Utilities::MPI::create_evenly_distributed_partitioning(), dh, SparsityTools::distribute_sparsity_pattern(), DoFTools::extract_locally_relevant_dofs(), face_quadrature_formula, fe, inclusion_constraints, inclusion_matrix, inclusions, VectorTools::interpolate_boundary_values(), locally_relevant_solution, DoFTools::make_hanging_node_constraints(), DoFTools::make_sparsity_pattern(), mpi_communicator, owned_dofs, par, pcout, relevant_dofs, solution, stiffness_matrix, system_rhs, and Utilities::MPI::this_mpi_process().
Referenced by refine_and_transfer(), and run().
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().
void ElasticityProblem< dim, spacedim >::solve | ( | ) |
Definition at line 583 of file elasticity.cc.
References computing_timer, constraints, coupling_matrix, dh, DoFTools::extract_rigid_body_modes(), inclusion_constraints, inclusion_matrix, inclusions, VectorTools::interpolate(), locally_relevant_solution, mpi_communicator, par, pcout, UtilitiesAL::set_null_space(), solution, stiffness_matrix, and system_rhs.
Referenced by run().
std::map<types::boundary_id, double> ElasticityProblem< dim, spacedim >::areas |
Definition at line 403 of file elasticity.h.
std::map<types::boundary_id, Tensor<1, spacedim> > ElasticityProblem< dim, spacedim >::average_displacements |
Definition at line 401 of file elasticity.h.
std::map<types::boundary_id, Tensor<1, spacedim> > ElasticityProblem< dim, spacedim >::average_normals |
Definition at line 402 of file elasticity.h.
|
mutable |
Definition at line 374 of file elasticity.h.
Referenced by assemble_coupling(), assemble_coupling_sparsity(), assemble_elasticity_system(), compute_internal_and_boundary_stress(), ElasticityProblem(), output_pressure(), output_results(), refine_and_transfer(), run(), setup_dofs(), setup_fe(), and solve().
AffineConstraints<double> ElasticityProblem< dim, spacedim >::constraints |
Definition at line 384 of file elasticity.h.
Referenced by assemble_coupling(), assemble_coupling_sparsity(), assemble_elasticity_system(), refine_and_transfer(), setup_dofs(), and solve().
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().
double ElasticityProblem< dim, spacedim >::current_time = 0.0 |
Definition at line 408 of file elasticity.h.
Referenced by run().
unsigned int ElasticityProblem< dim, spacedim >::cycle = 0 |
Definition at line 395 of file elasticity.h.
Referenced by compute_internal_and_boundary_stress(), output_pressure(), output_results(), output_solution(), and run().
DoFHandler<spacedim> ElasticityProblem< dim, spacedim >::dh |
Definition at line 380 of file elasticity.h.
Referenced by assemble_coupling(), assemble_coupling_sparsity(), assemble_elasticity_system(), compute_internal_and_boundary_stress(), ElasticityProblem(), output_solution(), refine_and_transfer(), run(), setup_dofs(), and solve().
FEValuesExtractors::Vector ElasticityProblem< dim, spacedim >::displacement |
Definition at line 397 of file elasticity.h.
Referenced by assemble_elasticity_system(), compute_internal_and_boundary_stress(), and ElasticityProblem().
std::unique_ptr<Quadrature<spacedim - 1> > ElasticityProblem< dim, spacedim >::face_quadrature_formula |
Definition at line 379 of file elasticity.h.
Referenced by assemble_elasticity_system(), compute_internal_and_boundary_stress(), setup_dofs(), and setup_fe().
std::unique_ptr<FiniteElement<spacedim> > ElasticityProblem< dim, spacedim >::fe |
Definition at line 376 of file elasticity.h.
Referenced by assemble_coupling(), assemble_coupling_sparsity(), assemble_elasticity_system(), compute_internal_and_boundary_stress(), setup_dofs(), and setup_fe().
std::map<types::boundary_id, Tensor<1, spacedim> > ElasticityProblem< dim, spacedim >::forces |
Definition at line 400 of file elasticity.h.
std::vector<std::vector<BoundingBox<spacedim> > > ElasticityProblem< dim, spacedim >::global_bounding_boxes |
Definition at line 394 of file elasticity.h.
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().
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<spacedim> ElasticityProblem< dim, spacedim >::inclusions |
Definition at line 377 of file elasticity.h.
Referenced by assemble_coupling(), assemble_coupling_sparsity(), ElasticityProblem(), output_lambda(), output_pressure(), output_results(), refine_and_transfer(), run(), setup_dofs(), and solve().
LA::MPI::BlockVector ElasticityProblem< dim, spacedim >::locally_relevant_solution |
Definition at line 392 of file elasticity.h.
Referenced by compute_internal_and_boundary_stress(), output_lambda(), output_pressure(), output_solution(), refine_and_transfer(), run(), setup_dofs(), and solve().
AffineConstraints<double> ElasticityProblem< dim, spacedim >::mean_value_constraints |
Definition at line 386 of file elasticity.h.
MPI_Comm ElasticityProblem< dim, spacedim >::mpi_communicator |
Definition at line 372 of file elasticity.h.
Referenced by compute_internal_and_boundary_stress(), ElasticityProblem(), output_pressure(), output_solution(), setup_dofs(), and solve().
std::vector<IndexSet> ElasticityProblem< dim, spacedim >::owned_dofs |
Definition at line 381 of file elasticity.h.
Referenced by setup_dofs().
const ElasticityProblemParameters<dim, spacedim>& ElasticityProblem< dim, spacedim >::par |
Definition at line 371 of file elasticity.h.
Referenced by assemble_coupling(), assemble_elasticity_system(), check_boundary_ids(), compute_internal_and_boundary_stress(), ElasticityProblem(), make_grid(), output_lambda(), output_pressure(), output_results(), output_solution(), print_parameters(), refine_and_transfer(), run(), setup_dofs(), setup_fe(), and solve().
ConditionalOStream ElasticityProblem< dim, spacedim >::pcout |
Definition at line 373 of file elasticity.h.
Referenced by ElasticityProblem(), make_grid(), output_pressure(), print_parameters(), run(), setup_dofs(), and solve().
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().
std::vector<IndexSet> ElasticityProblem< dim, spacedim >::relevant_dofs |
Definition at line 382 of file elasticity.h.
Referenced by setup_dofs().
TrilinosWrappers::MPI::Vector ElasticityProblem< dim, spacedim >::sigma_n |
Definition at line 404 of file elasticity.h.
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().
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().
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().
parallel::distributed::Triangulation<spacedim> ElasticityProblem< dim, spacedim >::tria |
Definition at line 375 of file elasticity.h.
Referenced by compute_internal_and_boundary_stress(), ElasticityProblem(), make_grid(), output_solution(), refine_and_transfer(), and run().