22#ifndef INCLUDE_EXADG_FLUID_STRUCTURE_INTERACTION_SINGLE_FIELD_SOLVERS_STRUCTURE_H_
23#define INCLUDE_EXADG_FLUID_STRUCTURE_INTERACTION_SINGLE_FIELD_SOLVERS_STRUCTURE_H_
26#include <exadg/structure/spatial_discretization/operator.h>
27#include <exadg/structure/time_integration/time_int_gen_alpha.h>
30#include <exadg/fluid_structure_interaction/user_interface/application_base.h>
36template<
int dim,
typename Number>
42 MPI_Comm
const mpi_comm,
46 std::shared_ptr<Grid<dim>> grid;
47 std::shared_ptr<dealii::Mapping<dim>> mapping;
49 std::shared_ptr<MultigridMappings<dim, Number>> multigrid_mappings;
52 std::shared_ptr<MatrixFreeData<dim, Number>> matrix_free_data;
53 std::shared_ptr<dealii::MatrixFree<dim, Number>> matrix_free;
56 std::shared_ptr<Structure::Operator<dim, Number>> pde_operator;
59 std::shared_ptr<Structure::TimeIntGenAlpha<dim, Number>> time_integrator;
62 std::shared_ptr<Structure::PostProcessor<dim, Number>> postprocessor;
65template<
int dim,
typename Number>
67SolverStructure<dim, Number>::setup(
69 MPI_Comm
const mpi_comm,
73 application->setup(grid, mapping, multigrid_mappings);
77 std::make_shared<Structure::Operator<dim, Number>>(grid,
80 application->get_boundary_descriptor(),
81 application->get_field_functions(),
82 application->get_material_descriptor(),
83 application->get_parameters(),
88 matrix_free_data = std::make_shared<MatrixFreeData<dim, Number>>();
89 matrix_free_data->append(pde_operator);
91 matrix_free = std::make_shared<dealii::MatrixFree<dim, Number>>();
92 matrix_free->reinit(*mapping,
93 matrix_free_data->get_dof_handler_vector(),
94 matrix_free_data->get_constraint_vector(),
95 matrix_free_data->get_quadrature_vector(),
96 matrix_free_data->data);
98 pde_operator->setup(matrix_free, matrix_free_data);
101 postprocessor = application->create_postprocessor();
102 postprocessor->setup(pde_operator->get_dof_handler(), *mapping);
105 time_integrator = std::make_shared<Structure::TimeIntGenAlpha<dim, Number>>(
106 pde_operator, postprocessor, application->get_parameters(), mpi_comm, is_test);
108 time_integrator->setup(application->get_parameters().restarted_simulation);
Definition structure.h:38
Definition application_base.h:64