22#ifndef EXADG_FLUID_STRUCTURE_INTERACTION_SINGLE_FIELD_SOLVERS_STRUCTURE_H_
23#define EXADG_FLUID_STRUCTURE_INTERACTION_SINGLE_FIELD_SOLVERS_STRUCTURE_H_
26#include <exadg/fluid_structure_interaction/user_interface/application_base.h>
27#include <exadg/structure/spatial_discretization/operator.h>
28#include <exadg/structure/time_integration/time_int_gen_alpha.h>
34template<
int dim,
typename Number>
40 MPI_Comm
const mpi_comm,
44 std::shared_ptr<Grid<dim>> grid;
45 std::shared_ptr<dealii::Mapping<dim>> mapping;
47 std::shared_ptr<MultigridMappings<dim, Number>> multigrid_mappings;
50 std::shared_ptr<MatrixFreeData<dim, Number>> matrix_free_data;
51 std::shared_ptr<dealii::MatrixFree<dim, Number>> matrix_free;
54 std::shared_ptr<Structure::Operator<dim, Number>> pde_operator;
57 std::shared_ptr<Structure::TimeIntGenAlpha<dim, Number>> time_integrator;
60 std::shared_ptr<Structure::PostProcessor<dim, Number>> postprocessor;
63template<
int dim,
typename Number>
65SolverStructure<dim, Number>::setup(
67 MPI_Comm
const mpi_comm,
71 application->setup(grid, mapping, multigrid_mappings);
75 std::make_shared<Structure::Operator<dim, Number>>(grid,
78 application->get_boundary_descriptor(),
79 application->get_field_functions(),
80 application->get_material_descriptor(),
81 application->get_parameters(),
86 matrix_free_data = std::make_shared<MatrixFreeData<dim, Number>>();
87 matrix_free_data->append(pde_operator);
89 matrix_free = std::make_shared<dealii::MatrixFree<dim, Number>>();
90 matrix_free->reinit(*mapping,
91 matrix_free_data->get_dof_handler_vector(),
92 matrix_free_data->get_constraint_vector(),
93 matrix_free_data->get_quadrature_vector(),
94 matrix_free_data->data);
96 pde_operator->setup(matrix_free, matrix_free_data);
99 postprocessor = application->create_postprocessor();
100 postprocessor->setup(pde_operator->get_dof_handler(), *mapping);
103 time_integrator = std::make_shared<Structure::TimeIntGenAlpha<dim, Number>>(
104 pde_operator, postprocessor, application->get_parameters(), mpi_comm, is_test);
106 time_integrator->setup(application->get_parameters().restarted_simulation);
Definition structure.h:36
Definition application_base.h:58