25 :
_tag(*this,
"precice-configuration",
xml::XMLTag::OCCUR_ONCE),
29 _tag.setDocumentation(
"Main tag containing preCICE configuration.");
30 _tag.addNamespace(
"data");
31 _tag.addNamespace(
"communication");
32 _tag.addNamespace(
"mapping");
33 _tag.addNamespace(
"export");
34 _tag.addNamespace(
"action");
35 _tag.addNamespace(
"coupling-scheme");
36 _tag.addNamespace(
"acceleration");
39 .setDocumentation(
"Enable experimental features.");
40 _tag.addAttribute(attrExperimental);
43 .setDocumentation(
"Enable experimental remeshing feature, requires experimental to be true.");
44 _tag.addAttribute(attrRemeshing);
47 .setDocumentation(
"Connected participants wait for each other in finalize, which can be helpful in SLURM sessions.");
48 _tag.addAttribute(attrWaitInFinalize);
69 if (tag.
getName() ==
"precice-configuration") {
93 bool participantFound =
false;
95 if (participant->getName() == neededMeshes.first) {
96 for (
const std::string &neededMesh : neededMeshes.second) {
98 "Participant \"{}\" needs to use the mesh \"{}\" to be able to use it in the coupling scheme. "
99 "Please either add a provide-mesh or a receive-mesh tag in this participant's configuration, or use a different mesh in the coupling scheme.",
100 neededMeshes.first, neededMesh);
102 participantFound =
true;
112 "The acceptor in <m2n:... acceptor=\"{}\" connector=\"{}\" /> is an unknown. {}",
116 "The connector in <m2n:... acceptor=\"{}\" connector=\"{}\" /> is an unknown. {}",
#define PRECICE_TRACE(...)
#define PRECICE_CHECK(check,...)
#define PRECICE_ASSERT(...)
#define PRECICE_UNREACHABLE(...)
const PtrParticipantConfiguration & getParticipantConfiguration() const
void xmlTagCallback(const xml::ConfigurationContext &context, xml::XMLTag &tag) override
Callback function required for use of automatic configuration.
mesh::PtrMeshConfiguration _meshConfiguration
logging::LogConfiguration _logConfig
bool _remeshing
Allow the use of experimental remeshing features.
precice::profiling::ProfilingConfiguration _profilingConfig
bool _experimental
Allow the use of experimental features.
m2n::M2NConfiguration::SharedPointer _m2nConfiguration
PtrParticipantConfiguration _participantConfiguration
void xmlEndTagCallback(const xml::ConfigurationContext &context, xml::XMLTag &tag) override
Callback function required for use of automatic configuration.
xml::XMLTag & getXMLTag()
Returns root xml tag to start the automatic configuration process.
bool _waitInFinalize
Synchronize participants in finalize.
cplscheme::PtrCouplingSchemeConfiguration _couplingSchemeConfiguration
mesh::PtrDataConfiguration _dataConfiguration
Represents an XML tag to be configured automatically.
bool getBooleanAttributeValue(const std::string &name, std::optional< bool > default_value=std::nullopt) const
const std::string & getName() const
Returns name (without namespace).
std::shared_ptr< ParticipantConfiguration > PtrParticipantConfiguration
std::shared_ptr< ParticipantState > PtrParticipant
contains the logic of the parallel communication between participants.
contains the XML configuration parser.
XMLAttribute< std::string > makeXMLAttribute(std::string name, const char *defaultValue)
Tightly coupled to the parameters of Participant()