22#ifndef EXADG_FLUID_STRUCTURE_INTERACTION_PRECICE_PRECICE_PARAMETERS_H_
23#define EXADG_FLUID_STRUCTURE_INTERACTION_PRECICE_PRECICE_PARAMETERS_H_
26#include <deal.II/base/parameter_handler.h>
29#include <exadg/fluid_structure_interaction/precice/coupling_base.h>
30#include <exadg/utilities/enum_utilities.h>
41struct ConfigurationParameters
43 ConfigurationParameters() =
default;
45 ConfigurationParameters(std::string
const & input_file);
47 std::string config_file =
"precice config-file";
48 std::string physics =
"undefined";
49 std::string participant_name =
"exadg";
50 std::string read_mesh_name =
"default";
51 std::string write_mesh_name =
"default";
52 std::string ale_mesh_name =
"default";
53 std::string write_data_specification =
"values_on_q_points";
54 std::string velocity_data_name =
"default";
55 std::string displacement_data_name =
"default";
56 std::string stress_data_name =
"default";
58 WriteDataType write_data_type = WriteDataType::undefined;
61 add_parameters(dealii::ParameterHandler & prm);
66ConfigurationParameters::ConfigurationParameters(std::string
const & input_file)
68 dealii::ParameterHandler prm;
70 prm.parse_input(input_file,
"",
true,
true);
78ConfigurationParameters::add_parameters(dealii::ParameterHandler & prm)
80 prm.enter_subsection(
"preciceConfiguration");
82 prm.add_parameter(
"preciceConfigFile",
84 "Name of the precice configuration file",
85 dealii::Patterns::Anything());
86 prm.add_parameter(
"Physics",
88 "Specify the side you want to compute (Fluid vs Structure)",
89 dealii::Patterns::Selection(
"Structure|Fluid|undefined"));
90 prm.add_parameter(
"ParticipantName",
92 "Name of the participant in the precice-config.xml file",
93 dealii::Patterns::Anything());
94 prm.add_parameter(
"ReadMeshName",
96 "Name of the read coupling mesh in the precice-config.xml file",
97 dealii::Patterns::Anything());
98 prm.add_parameter(
"WriteMeshName",
100 "Name of the write coupling mesh in the precice-config.xml file",
101 dealii::Patterns::Anything());
102 prm.add_parameter(
"ALEMeshName",
104 "Name of the ale-mesh in the precice-config.xml file",
105 dealii::Patterns::Anything());
106 prm.add_parameter(
"WriteDataSpecification",
107 write_data_specification,
108 "Specification of the write data location and the data type",
109 dealii::Patterns::Selection(
110 "values_on_dofs|values_on_q_points|normal_gradients_on_q_points|"
111 "values_on_other_mesh|gradients_on_other_mesh"));
112 prm.add_parameter(
"VelocityDataName",
114 "Name of the Velocity data in the precice-config.xml file",
115 dealii::Patterns::Anything());
116 prm.add_parameter(
"DisplacementDataName",
117 displacement_data_name,
118 "Name of the Displacement data in the precice-config.xml file",
119 dealii::Patterns::Anything());
120 prm.add_parameter(
"StressDataName",
122 "Name of the Stress data in the precice-config.xml file",
123 dealii::Patterns::Anything());
125 prm.leave_subsection();
void string_to_enum(EnumType &enum_type, std::string const &enum_name)
Converts a string to an enum, which is provided as first function argument.
Definition enum_utilities.h:79