|
preCICE
|
Configuration for coupling schemes. More...
#include <CouplingSchemeConfiguration.hpp>
Classes | |
| struct | Config |
| struct | ConvergenceMeasureDefintion |
Public Member Functions | |
| CouplingSchemeConfiguration (xml::XMLTag &parent, mesh::PtrMeshConfiguration meshConfig, m2n::M2NConfiguration::SharedPointer m2nConfig, config::PtrParticipantConfiguration participantConfig) | |
| Constructor. | |
| void | setRemeshing (bool allowed) |
| ~CouplingSchemeConfiguration () override=default | |
| Destructor, empty. | |
| bool | hasCouplingScheme (const std::string &participantName) const |
| Check, if a coupling scheme is configured for a participant. | |
| const PtrCouplingScheme & | getCouplingScheme (const std::string &participantName) const |
| Returns the configured coupling scheme. | |
| const std::string & | getDataToExchange (int index) const |
| Returns the name of one dataset exchanged in the coupling scheme. | |
| void | xmlTagCallback (const xml::ConfigurationContext &context, xml::XMLTag &callingTag) override |
| Callback method required when using xml::XMLTag. | |
| void | xmlEndTagCallback (const xml::ConfigurationContext &context, xml::XMLTag &callingTag) override |
| Callback method required when using xml::XMLTag. | |
| void | addCouplingScheme (const PtrCouplingScheme &cplScheme, const std::string &participantName) |
| Adds a manually configured coupling scheme for a participant. | |
| Public Member Functions inherited from precice::xml::XMLTag::Listener | |
| Listener & | operator= (Listener &&)=delete |
| virtual | ~Listener ()=default |
Private Member Functions | |
| void | addTypespecifcSubtags (const std::string &type, xml::XMLTag &tag) |
| void | addTransientLimitTags (const std::string &type, xml::XMLTag &tag) |
| void | addTagParticipants (xml::XMLTag &tag) |
| void | addTagParticipant (xml::XMLTag &tag) |
| void | addTagExchange (xml::XMLTag &tag, bool substepsDefault) |
| void | addTagAbsoluteConvergenceMeasure (xml::XMLTag &tag) |
| void | addTagAbsoluteOrRelativeConvergenceMeasure (xml::XMLTag &tag) |
| void | addTagRelativeConvergenceMeasure (xml::XMLTag &tag) |
| void | addTagResidualRelativeConvergenceMeasure (xml::XMLTag &tag) |
| void | addBaseAttributesTagConvergenceMeasure (xml::XMLTag &tag) |
| void | addTagMinIterations (xml::XMLTag &tag) |
| void | addTagMaxIterations (xml::XMLTag &tag) |
| void | addTagAcceleration (xml::XMLTag &tag) |
| void | addAbsoluteConvergenceMeasure (const std::string &dataName, const std::string &meshName, double limit, bool suffices, bool strict) |
| void | addAbsoluteOrRelativeConvergenceMeasure (const std::string &dataName, const std::string &meshName, double absLimit, double relLimit, bool suffices, bool strict) |
| void | addRelativeConvergenceMeasure (const std::string &dataName, const std::string &meshName, double limit, bool suffices, bool strict) |
| void | addResidualRelativeConvergenceMeasure (const std::string &dataName, const std::string &meshName, double limit, bool suffices, bool strict) |
| mesh::PtrData | getData (const std::string &dataName, const std::string &meshName) const |
| mesh::PtrData | findDataByID (int ID) const |
| PtrCouplingScheme | createSerialExplicitCouplingScheme (const std::string &accessor) const |
| PtrCouplingScheme | createParallelExplicitCouplingScheme (const std::string &accessor) const |
| PtrCouplingScheme | createSerialImplicitCouplingScheme (const std::string &accessor) const |
| PtrCouplingScheme | createParallelImplicitCouplingScheme (const std::string &accessor) const |
| PtrCouplingScheme | createMultiCouplingScheme (const std::string &accessor) const |
| constants::TimesteppingMethod | getTimesteppingMethod (const std::string &method) const |
| void | addDataToBeExchanged (BiCouplingScheme &scheme, const std::string &accessor) const |
| Adds configured exchange data to be sent or received to scheme. | |
| void | addMultiDataToBeExchanged (MultiCouplingScheme &scheme, const std::string &accessor) const |
| Adds configured exchange data to be sent or received to scheme. Only used specifically for MultiCouplingScheme. | |
| void | checkIfDataIsExchanged (DataID dataID, std::string_view participant) const |
| void | checkSerialImplicitAccelerationData (DataID dataID, const std::string &first, const std::string &second) const |
| void | addConvergenceMeasures (BaseCouplingScheme *scheme, const std::string &participant, const std::vector< ConvergenceMeasureDefintion > &convergenceMeasureDefinitions) const |
| void | setSerialAcceleration (BaseCouplingScheme *scheme, const std::string &first, const std::string &second) const |
| void | setParallelAcceleration (BaseCouplingScheme *scheme, const std::string &participant) const |
| void | checkSubstepExchangeWaveformDegree (const Config::Exchange &exchange) const |
| Helper function to check that waveform-degree and substep exchange are compatible. | |
| void | updateConfigForImplicitCoupling () |
| Helper to update some configs which may have a different meaning in implicit coupling. | |
| void | checkIterationLimits () const |
| Helper function to check iteration limits in conjunction with convergence measures. | |
Private Attributes | |
| bool | _allowRemeshing = false |
| logging::Logger | _log {"cplscheme::CouplingSchemeConfiguration"} |
| const std::string | TAG |
| const std::string | TAG_PARTICIPANTS |
| const std::string | TAG_PARTICIPANT |
| const std::string | TAG_EXCHANGE |
| const std::string | TAG_MAX_TIME |
| const std::string | TAG_MAX_TIME_WINDOWS |
| const std::string | TAG_TIME_WINDOW_SIZE |
| const std::string | TAG_ABS_CONV_MEASURE |
| const std::string | TAG_ABS_OR_REL_CONV_MEASURE |
| const std::string | TAG_REL_CONV_MEASURE |
| const std::string | TAG_RES_REL_CONV_MEASURE |
| const std::string | TAG_MIN_ITERATIONS |
| const std::string | TAG_MAX_ITERATIONS |
| const std::string | ATTR_DATA |
| const std::string | ATTR_MESH |
| const std::string | ATTR_PARTICIPANT |
| const std::string | ATTR_INITIALIZE |
| const std::string | ATTR_EXCHANGE_SUBSTEPS |
| const std::string | ATTR_TYPE |
| const std::string | ATTR_FIRST |
| const std::string | ATTR_SECOND |
| const std::string | ATTR_VALUE |
| const std::string | ATTR_METHOD |
| const std::string | ATTR_LIMIT |
| const std::string | ATTR_ABS_LIMIT |
| const std::string | ATTR_REL_LIMIT |
| const std::string | ATTR_NAME |
| const std::string | ATTR_FROM |
| const std::string | ATTR_TO |
| const std::string | ATTR_SUFFICES |
| const std::string | ATTR_STRICT |
| const std::string | ATTR_CONTROL |
| const std::string | VALUE_SERIAL_EXPLICIT |
| const std::string | VALUE_PARALLEL_EXPLICIT |
| const std::string | VALUE_SERIAL_IMPLICIT |
| const std::string | VALUE_PARALLEL_IMPLICIT |
| const std::string | VALUE_MULTI |
| const std::string | VALUE_FIXED |
| const std::string | VALUE_FIRST_PARTICIPANT |
| struct precice::cplscheme::CouplingSchemeConfiguration::Config | _config |
| mesh::PtrMeshConfiguration | _meshConfig |
| m2n::M2NConfiguration::SharedPointer | _m2nConfig |
| acceleration::PtrAccelerationConfiguration | _accelerationConfig |
| precice::config::PtrParticipantConfiguration | _participantConfig |
| std::map< std::string, PtrCouplingScheme > | _couplingSchemes |
| Map from participant name to coupling scheme (composition). | |
| std::map< std::string, CompositionalCouplingScheme * > | _couplingSchemeCompositions |
| If a participant has more than one coupling scheme, a composition is created. | |
Static Private Attributes | |
| static const int | DEFAULT_MIN_ITERATIONS |
| static const int | DEFAULT_MAX_ITERATIONS |
Configuration for coupling schemes.
Definition at line 43 of file CouplingSchemeConfiguration.hpp.
| precice::cplscheme::CouplingSchemeConfiguration::CouplingSchemeConfiguration | ( | xml::XMLTag & | parent, |
| mesh::PtrMeshConfiguration | meshConfig, | ||
| m2n::M2NConfiguration::SharedPointer | m2nConfig, | ||
| config::PtrParticipantConfiguration | participantConfig ) |
Constructor.
| [in] | parent | Used to add subtags to hierarchical XML structure. |
| [in] | meshConfig | For checking if a used mesh is defined. |
| [in] | m2nConfig | For checking if a communication between participants to be coupled is defined. |
| [in] | participantConfig | For checking waveform degree. |
Definition at line 45 of file CouplingSchemeConfiguration.cpp.
|
overridedefault |
Destructor, empty.
|
private |
Definition at line 685 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 707 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 632 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 1168 of file CouplingSchemeConfiguration.cpp.
| void precice::cplscheme::CouplingSchemeConfiguration::addCouplingScheme | ( | const PtrCouplingScheme & | cplScheme, |
| const std::string & | participantName ) |
Adds a manually configured coupling scheme for a participant.
Definition at line 394 of file CouplingSchemeConfiguration.cpp.
|
private |
Adds configured exchange data to be sent or received to scheme.
Definition at line 1023 of file CouplingSchemeConfiguration.cpp.
|
private |
Adds configured exchange data to be sent or received to scheme. Only used specifically for MultiCouplingScheme.
Definition at line 1071 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 735 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 763 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 568 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 583 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 674 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 546 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 662 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 650 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 532 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 517 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 617 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 601 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 480 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 429 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 1106 of file CouplingSchemeConfiguration.cpp.
|
private |
Helper function to check iteration limits in conjunction with convergence measures.
Definition at line 982 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 1136 of file CouplingSchemeConfiguration.cpp.
|
private |
Helper function to check that waveform-degree and substep exchange are compatible.
The following rules are checked:
1) If waveform-degree="0", then user must set substeps="false", because constant interpolation (zeroth degree) is intended for debugging and user should use first degree instead. 2) If waveform-degree="1", then any configuration for substeps is allowed. The user might want to set substeps="false" for better performance. 3) If waveform-degree="2" or greater, the user must set substeps="true", because subcycling and exchange of substeps is required for higher-degree B-splines.
| exchange | The Exchange being checked. |
Definition at line 996 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 915 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 832 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 889 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 812 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 853 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 801 of file CouplingSchemeConfiguration.cpp.
| const PtrCouplingScheme & precice::cplscheme::CouplingSchemeConfiguration::getCouplingScheme | ( | const std::string & | participantName | ) | const |
Returns the configured coupling scheme.
Definition at line 145 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 791 of file CouplingSchemeConfiguration.cpp.
| const std::string & precice::cplscheme::CouplingSchemeConfiguration::getDataToExchange | ( | int | index | ) | const |
Returns the name of one dataset exchanged in the coupling scheme.
|
private |
Definition at line 961 of file CouplingSchemeConfiguration.cpp.
| bool precice::cplscheme::CouplingSchemeConfiguration::hasCouplingScheme | ( | const std::string & | participantName | ) | const |
Check, if a coupling scheme is configured for a participant.
Definition at line 139 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 1196 of file CouplingSchemeConfiguration.cpp.
| void precice::cplscheme::CouplingSchemeConfiguration::setRemeshing | ( | bool | allowed | ) |
Definition at line 1219 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 1180 of file CouplingSchemeConfiguration.cpp.
|
private |
Helper to update some configs which may have a different meaning in implicit coupling.
Definition at line 975 of file CouplingSchemeConfiguration.cpp.
|
overridevirtual |
Callback method required when using xml::XMLTag.
TODO test multi coupling scheme
Implements precice::xml::XMLTag::Listener.
Definition at line 318 of file CouplingSchemeConfiguration.cpp.
|
overridevirtual |
Callback method required when using xml::XMLTag.
Implements precice::xml::XMLTag::Listener.
Definition at line 156 of file CouplingSchemeConfiguration.cpp.
|
private |
Definition at line 175 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 83 of file CouplingSchemeConfiguration.hpp.
|
private |
|
private |
If a participant has more than one coupling scheme, a composition is created.
Definition at line 183 of file CouplingSchemeConfiguration.hpp.
|
private |
Map from participant name to coupling scheme (composition).
Definition at line 180 of file CouplingSchemeConfiguration.hpp.
|
mutableprivate |
Definition at line 84 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 173 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 171 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 177 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 111 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 118 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 100 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 104 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 106 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 114 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 103 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 110 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 101 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 109 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 113 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 102 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 112 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 107 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 117 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 116 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 115 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 105 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 108 of file CouplingSchemeConfiguration.hpp.
|
staticprivate |
Definition at line 129 of file CouplingSchemeConfiguration.hpp.
|
staticprivate |
Definition at line 128 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 86 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 93 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 94 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 89 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 98 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 90 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 91 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 97 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 88 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 87 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 95 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 96 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 92 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 126 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 125 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 124 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 121 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 123 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 120 of file CouplingSchemeConfiguration.hpp.
|
private |
Definition at line 122 of file CouplingSchemeConfiguration.hpp.