preCICE
Loading...
Searching...
No Matches
AccelerationConfiguration.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <map>
4#include <string>
5#include <vector>
10#include "logging/Logger.hpp"
13#include "xml/XMLTag.hpp"
14
15namespace precice::acceleration {
16
18public:
20
23
25 void xmlTagCallback(const xml::ConfigurationContext &context, xml::XMLTag &callingTag) override;
26
28 void xmlEndTagCallback(const xml::ConfigurationContext &context, xml::XMLTag &callingTag) override;
29
31 void clear();
32
34 void connectTags(xml::XMLTag &tag);
35
36 std::vector<std::string> &getNeededMeshes()
37 {
38 return _neededMeshes;
39 }
40
41private:
42 logging::Logger _log{"acceleration::AccelerationConfiguration"};
43
44 const std::string TAG;
45 const std::string TAG_RELAX;
46 const std::string TAG_INIT_RELAX;
47 const std::string TAG_MAX_USED_ITERATIONS;
48 const std::string TAG_TIME_WINDOWS_REUSED;
49 const std::string TAG_DATA;
50 const std::string TAG_FILTER;
51 const std::string TAG_ESTIMATEJACOBIAN;
52 const std::string TAG_PRECONDITIONER;
53 const std::string TAG_IMVJRESTART;
54
55 const std::string ATTR_NAME;
56 const std::string ATTR_MESH;
57 const std::string ATTR_SCALING;
58 const std::string ATTR_VALUE;
59 const std::string ATTR_ENFORCE;
60 const std::string ATTR_SINGULARITYLIMIT;
61 const std::string ATTR_TYPE;
62 const std::string ATTR_BUILDJACOBIAN;
63 const std::string ATTR_ON_BOUND_VIOLATION;
64 const std::string ATTR_REDUCEDTIMEGRIDQN;
65 const std::string ATTR_IMVJCHUNKSIZE;
67 const std::string ATTR_RSSVD_TRUNCATIONEPS;
70
71 const std::string VALUE_IGNORE;
72 const std::string VALUE_CLAMP;
73 const std::string VALUE_DISCARD;
74 const std::string VALUE_SCALE_TO_BOUND;
75 const std::string VALUE_CONSTANT;
76 const std::string VALUE_AITKEN;
77 const std::string VALUE_IQNILS;
78 const std::string VALUE_IQNIMVJ;
79 const std::string VALUE_QR1FILTER;
80 const std::string VALUE_QR1_ABSFILTER;
81 const std::string VALUE_QR2FILTER;
82 const std::string VALUE_QR3FILTER;
84 const std::string VALUE_VALUE_PRECONDITIONER;
87 const std::string VALUE_LS_RESTART;
88 const std::string VALUE_ZERO_RESTART;
89 const std::string VALUE_SVD_RESTART;
90 const std::string VALUE_SLIDE_RESTART;
91 const std::string VALUE_NO_RESTART;
92
94
95 std::string _meshName;
96
97 // acceleration method
99
100 std::vector<std::string> _neededMeshes;
101
103
104 std::set<std::pair<std::string, std::string>> _uniqueDataAndMeshNames;
105
130
141
155
157
166
169};
170} // namespace precice::acceleration
std::set< std::pair< std::string, std::string > > _uniqueDataAndMeshNames
struct precice::acceleration::AccelerationConfiguration::UserDefinitions _userDefinitions
struct precice::acceleration::AccelerationConfiguration::ConfigurationData _config
const struct precice::acceleration::AccelerationConfiguration::DefaultValuesIMVJ _defaultValuesIQNIMVJ
PtrAcceleration getAcceleration()
Returns the configured coupling scheme.
void xmlTagCallback(const xml::ConfigurationContext &context, xml::XMLTag &callingTag) override
Callback method required when using xml::XMLTag.
AccelerationConfiguration(const mesh::PtrMeshConfiguration &meshConfig)
const struct precice::acceleration::AccelerationConfiguration::DefaultValuesIQN _defaultValuesIQNILS
void xmlEndTagCallback(const xml::ConfigurationContext &context, xml::XMLTag &callingTag) override
Callback method required when using xml::XMLTag.
OnBoundViolation
Options for handling bound violations.
This class provides a lightweight logger.
Definition Logger.hpp:17
Represents an XML tag to be configured automatically.
Definition XMLTag.hpp:28
std::shared_ptr< Preconditioner > PtrPreconditioner
contains implementations of acceleration schemes.
std::shared_ptr< Acceleration > PtrAcceleration
std::shared_ptr< MeshConfiguration > PtrMeshConfiguration
Tightly coupled to the parameters of Participant()
Definition XMLTag.hpp:21
Callback interface for configuration classes using XMLTag.
Definition XMLTag.hpp:46