22#ifndef INCLUDE_EXADG_FLUID_STRUCTURE_INTERACTION_PRECICE_PRECICE_PARAMETERS_H_
23#define INCLUDE_EXADG_FLUID_STRUCTURE_INTERACTION_PRECICE_PRECICE_PARAMETERS_H_
25#include <deal.II/base/parameter_handler.h>
28#include <exadg/fluid_structure_interaction/precice/coupling_base.h>
29#include <exadg/utilities/enum_utilities.h>
40struct ConfigurationParameters
42 ConfigurationParameters() =
default;
44 ConfigurationParameters(std::string
const & input_file);
46 std::string config_file =
"precice config-file";
47 std::string physics =
"undefined";
48 std::string participant_name =
"exadg";
49 std::string read_mesh_name =
"default";
50 std::string write_mesh_name =
"default";
51 std::string ale_mesh_name =
"default";
52 std::string write_data_specification =
"values_on_q_points";
53 std::string velocity_data_name =
"default";
54 std::string displacement_data_name =
"default";
55 std::string stress_data_name =
"default";
57 WriteDataType write_data_type = WriteDataType::undefined;
60 add_parameters(dealii::ParameterHandler & prm);
65ConfigurationParameters::ConfigurationParameters(std::string
const & input_file)
67 dealii::ParameterHandler prm;
69 prm.parse_input(input_file,
"",
true,
true);
77ConfigurationParameters::add_parameters(dealii::ParameterHandler & prm)
79 prm.enter_subsection(
"preciceConfiguration");
81 prm.add_parameter(
"preciceConfigFile",
83 "Name of the precice configuration file",
84 dealii::Patterns::Anything());
85 prm.add_parameter(
"Physics",
87 "Specify the side you want to compute (Fluid vs Structure)",
88 dealii::Patterns::Selection(
"Structure|Fluid|undefined"));
89 prm.add_parameter(
"ParticipantName",
91 "Name of the participant in the precice-config.xml file",
92 dealii::Patterns::Anything());
93 prm.add_parameter(
"ReadMeshName",
95 "Name of the read coupling mesh in the precice-config.xml file",
96 dealii::Patterns::Anything());
97 prm.add_parameter(
"WriteMeshName",
99 "Name of the write coupling mesh in the precice-config.xml file",
100 dealii::Patterns::Anything());
101 prm.add_parameter(
"ALEMeshName",
103 "Name of the ale-mesh in the precice-config.xml file",
104 dealii::Patterns::Anything());
105 prm.add_parameter(
"WriteDataSpecification",
106 write_data_specification,
107 "Specification of the write data location and the data type",
108 dealii::Patterns::Selection(
109 "values_on_dofs|values_on_q_points|normal_gradients_on_q_points|"
110 "values_on_other_mesh|gradients_on_other_mesh"));
111 prm.add_parameter(
"VelocityDataName",
113 "Name of the Velocity data in the precice-config.xml file",
114 dealii::Patterns::Anything());
115 prm.add_parameter(
"DisplacementDataName",
116 displacement_data_name,
117 "Name of the Displacement data in the precice-config.xml file",
118 dealii::Patterns::Anything());
119 prm.add_parameter(
"StressDataName",
121 "Name of the Stress data in the precice-config.xml file",
122 dealii::Patterns::Anything());
124 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:77