19 using IC_Function0 = std::function<std::function<void(const mfem::Vector&, mfem::Vector&)>()>;
20 using IC_Function1 = std::function<std::function<void(const mfem::Vector&, mfem::Vector&)>(mfem::real_t)>;
21 using IC_Function2 = std::function<std::function<void(const mfem::Vector&, mfem::Vector&)>(mfem::real_t, mfem::real_t)>;
22 using IC_Function3 = std::function<std::function<void(
const mfem::Vector&,
23 mfem::Vector&)>(mfem::real_t, mfem::real_t, mfem::real_t)>;
24 using IC_Function4 = std::function<std::function<void(
const mfem::Vector&,
25 mfem::Vector&)>(mfem::real_t, mfem::real_t,
26 mfem::real_t, mfem::real_t)>;
27 using IC_Function5 = std::function<std::function<void(
const mfem::Vector&,
28 mfem::Vector&)>(mfem::real_t, mfem::real_t, mfem::real_t,
29 mfem::real_t, mfem::real_t)>;
32 using BC_VectorFunction0 = std::function<std::function<void(const mfem::Vector&, mfem::Vector&)>()>;
33 using BC_VectorFunction1 = std::function<std::function<void(const mfem::Vector&, mfem::Vector&)>(mfem::real_t)>;
34 using BC_VectorFunction2 = std::function<std::function<void(const mfem::Vector&, mfem::Vector&)>(mfem::real_t, mfem::real_t)>;
37 using BC_ScalarFunction1 = std::function<std::function<mfem::real_t(const mfem::Vector&)>(mfem::real_t)>;
38 using BC_ScalarFunction2 = std::function<std::function<mfem::real_t(const mfem::Vector&)>(mfem::real_t, mfem::real_t)>;
40 using BC_VectorTDFunction0 = std::function<std::function<void(const mfem::Vector&, mfem::real_t, mfem::Vector&)>()>;
42 mfem::Vector&)>(mfem::real_t)>;
44 mfem::Vector&)>(mfem::real_t, mfem::real_t)>;
46 using BC_ScalarTDFunction0 = std::function<std::function<mfem::real_t(const mfem::Vector&, mfem::real_t)>()>;
47 using BC_ScalarTDFunction1 = std::function<std::function<mfem::real_t(const mfem::Vector&, mfem::real_t)>(mfem::real_t)>;
49 mfem::real_t)>(mfem::real_t, mfem::real_t)>;
67 initialConditions0_[key] = func;
73 initialConditions1_[key] = func;
79 initialConditions2_[key] = func;
85 initialConditions3_[key] = func;
91 initialConditions4_[key] = func;
97 initialConditions5_[key] = func;
103 return initialConditions0_.at(key);
109 return initialConditions1_.at(key);
115 return initialConditions2_.at(key);
121 return initialConditions3_.at(key);
127 return initialConditions4_.at(key);
133 return initialConditions5_.at(key);
139 boundaryConditionsVectorFunction0_[key] = func;
145 boundaryConditionsScalarFunction0_[key] = func;
151 boundaryConditionsVectorFunction1_[key] = func;
157 boundaryConditionsScalarFunction1_[key] = func;
163 boundaryConditionsVectorFunction2_[key] = func;
169 boundaryConditionsScalarFunction2_[key] = func;
175 boundaryConditionsVectorTDFunction0_[key] = func;
181 boundaryConditionsScalarTDFunction0_[key] = func;
187 boundaryConditionsVectorTDFunction1_[key] = func;
193 boundaryConditionsScalarTDFunction1_[key] = func;
199 boundaryConditionsVectorTDFunction2_[key] = func;
205 boundaryConditionsScalarTDFunction2_[key] = func;
211 boundaryConditionsVector_[key] = vector;
217 boundaryConditionsScalar_[key] = scalar;
223 return boundaryConditionsVectorFunction0_.at(key);
229 return boundaryConditionsScalarFunction0_.at(key);
235 return boundaryConditionsVectorFunction1_.at(key);
241 return boundaryConditionsScalarFunction1_.at(key);
247 return boundaryConditionsVectorFunction2_.at(key);
253 return boundaryConditionsScalarFunction2_.at(key);
259 return boundaryConditionsVectorTDFunction0_.at(key);
265 return boundaryConditionsScalarTDFunction0_.at(key);
271 return boundaryConditionsVectorTDFunction1_.at(key);
277 return boundaryConditionsScalarTDFunction1_.at(key);
283 return boundaryConditionsVectorTDFunction2_.at(key);
289 return boundaryConditionsScalarTDFunction2_.at(key);
295 return boundaryConditionsVector_.at(key);
301 return boundaryConditionsScalar_.at(key);
308 std::map<std::string, IC_Function0> initialConditions0_;
309 std::map<std::string, IC_Function1> initialConditions1_;
310 std::map<std::string, IC_Function2> initialConditions2_;
311 std::map<std::string, IC_Function3> initialConditions3_;
312 std::map<std::string, IC_Function4> initialConditions4_;
313 std::map<std::string, IC_Function5> initialConditions5_;
315 std::map<std::string, BC_VectorFunction0> boundaryConditionsVectorFunction0_;
316 std::map<std::string, BC_VectorFunction1> boundaryConditionsVectorFunction1_;
317 std::map<std::string, BC_VectorFunction2> boundaryConditionsVectorFunction2_;
319 std::map<std::string, BC_ScalarFunction0> boundaryConditionsScalarFunction0_;
320 std::map<std::string, BC_ScalarFunction1> boundaryConditionsScalarFunction1_;
321 std::map<std::string, BC_ScalarFunction2> boundaryConditionsScalarFunction2_;
323 std::map<std::string, BC_VectorTDFunction0> boundaryConditionsVectorTDFunction0_;
324 std::map<std::string, BC_VectorTDFunction1> boundaryConditionsVectorTDFunction1_;
325 std::map<std::string, BC_VectorTDFunction2> boundaryConditionsVectorTDFunction2_;
327 std::map<std::string, BC_ScalarTDFunction0> boundaryConditionsScalarTDFunction0_;
328 std::map<std::string, BC_ScalarTDFunction1> boundaryConditionsScalarTDFunction1_;
329 std::map<std::string, BC_ScalarTDFunction2> boundaryConditionsScalarTDFunction2_;
331 std::map<std::string, BC_Vector> boundaryConditionsVector_;
333 std::map<std::string, BC_Scalar> boundaryConditionsScalar_;
Definition ConditionFactory.hpp:56
BC_ScalarFunction2 GetScalarFunctionBoundaryCondition2(const std::string &key)
Definition ConditionFactory.hpp:251
void RegisterVectorFunctionBoundaryCondition2(const std::string &key, BC_VectorFunction2 func)
Definition ConditionFactory.hpp:161
void RegisterVectorFunctionBoundaryCondition0(const std::string &key, BC_VectorFunction0 func)
Definition ConditionFactory.hpp:137
void RegisterVectorBoundaryCondition(const std::string &key, BC_Vector vector)
Definition ConditionFactory.hpp:209
void RegisterScalarTDFunctionBoundaryCondition0(const std::string &key, BC_ScalarTDFunction0 func)
Definition ConditionFactory.hpp:179
void RegisterVectorTDFunctionBoundaryCondition0(const std::string &key, BC_VectorTDFunction0 func)
Definition ConditionFactory.hpp:173
IC_Function1 GetInitialCondition1(const std::string &key)
Definition ConditionFactory.hpp:107
BC_ScalarTDFunction0 GetScalarTDFunctionBoundaryCondition0(const std::string &key)
Definition ConditionFactory.hpp:263
void RegisterInitialCondition0(const std::string &key, IC_Function0 func)
Definition ConditionFactory.hpp:65
BC_VectorTDFunction1 GetVectorTDFunctionBoundaryCondition1(const std::string &key)
Definition ConditionFactory.hpp:269
void RegisterScalarFunctionBoundaryCondition1(const std::string &key, BC_ScalarFunction1 func)
Definition ConditionFactory.hpp:155
BC_VectorTDFunction2 GetVectorTDFunctionBoundaryCondition2(const std::string &key)
Definition ConditionFactory.hpp:281
BC_VectorFunction0 GetVectorFunctionBoundaryCondition0(const std::string &key)
Definition ConditionFactory.hpp:221
IC_Function5 GetInitialCondition5(const std::string &key)
Definition ConditionFactory.hpp:131
void RegisterInitialCondition5(const std::string &key, IC_Function5 func)
Definition ConditionFactory.hpp:95
BC_ScalarFunction0 GetScalarFunctionBoundaryCondition0(const std::string &key)
Definition ConditionFactory.hpp:227
IC_Function4 GetInitialCondition4(const std::string &key)
Definition ConditionFactory.hpp:125
IC_Function3 GetInitialCondition3(const std::string &key)
Definition ConditionFactory.hpp:119
void RegisterScalarBoundaryCondition(const std::string &key, BC_Scalar scalar)
Definition ConditionFactory.hpp:215
static ConditionFactory & Instance()
Definition ConditionFactory.hpp:58
BC_Vector GetVectorBoundaryCondition(const std::string &key)
Definition ConditionFactory.hpp:293
void RegisterScalarTDFunctionBoundaryCondition2(const std::string &key, BC_ScalarTDFunction2 func)
Definition ConditionFactory.hpp:203
BC_VectorTDFunction0 GetVectorTDFunctionBoundaryCondition0(const std::string &key)
Definition ConditionFactory.hpp:257
void RegisterVectorTDFunctionBoundaryCondition2(const std::string &key, BC_VectorTDFunction2 func)
Definition ConditionFactory.hpp:197
BC_VectorFunction1 GetVectorFunctionBoundaryCondition1(const std::string &key)
Definition ConditionFactory.hpp:233
void RegisterVectorTDFunctionBoundaryCondition1(const std::string &key, BC_VectorTDFunction1 func)
Definition ConditionFactory.hpp:185
BC_ScalarFunction1 GetScalarFunctionBoundaryCondition1(const std::string &key)
Definition ConditionFactory.hpp:239
IC_Function2 GetInitialCondition2(const std::string &key)
Definition ConditionFactory.hpp:113
void RegisterInitialCondition3(const std::string &key, IC_Function3 func)
Definition ConditionFactory.hpp:83
void RegisterScalarFunctionBoundaryCondition2(const std::string &key, BC_ScalarFunction2 func)
Definition ConditionFactory.hpp:167
BC_Scalar GetScalarBoundaryCondition(const std::string &key)
Definition ConditionFactory.hpp:299
BC_ScalarTDFunction2 GetScalarTDFunctionBoundaryCondition2(const std::string &key)
Definition ConditionFactory.hpp:287
IC_Function0 GetInitialCondition0(const std::string &key)
Definition ConditionFactory.hpp:101
void RegisterInitialCondition2(const std::string &key, IC_Function2 func)
Definition ConditionFactory.hpp:77
void RegisterInitialCondition4(const std::string &key, IC_Function4 func)
Definition ConditionFactory.hpp:89
BC_ScalarTDFunction1 GetScalarTDFunctionBoundaryCondition1(const std::string &key)
Definition ConditionFactory.hpp:275
BC_VectorFunction2 GetVectorFunctionBoundaryCondition2(const std::string &key)
Definition ConditionFactory.hpp:245
void RegisterScalarFunctionBoundaryCondition0(const std::string &key, BC_ScalarFunction0 func)
Definition ConditionFactory.hpp:143
void RegisterScalarTDFunctionBoundaryCondition1(const std::string &key, BC_ScalarTDFunction1 func)
Definition ConditionFactory.hpp:191
void RegisterVectorFunctionBoundaryCondition1(const std::string &key, BC_VectorFunction1 func)
Definition ConditionFactory.hpp:149
void RegisterInitialCondition1(const std::string &key, IC_Function1 func)
Definition ConditionFactory.hpp:71
Definition ConditionFactory.hpp:16
std::function< std::function< void(const mfem::Vector &, mfem::Vector &)>(mfem::real_t, mfem::real_t)> IC_Function2
Definition ConditionFactory.hpp:21
std::function< std::function< mfem::real_t(const mfem::Vector &, mfem::real_t)>()> BC_ScalarTDFunction0
Definition ConditionFactory.hpp:46
std::function< std::function< void(const mfem::Vector &, mfem::real_t, mfem::Vector &)>(mfem::real_t, mfem::real_t)> BC_VectorTDFunction2
Definition ConditionFactory.hpp:44
std::function< std::function< void(const mfem::Vector &, mfem::Vector &)>(mfem::real_t, mfem::real_t, mfem::real_t, mfem::real_t)> IC_Function4
Definition ConditionFactory.hpp:26
std::function< std::function< void(const mfem::Vector &, mfem::real_t, mfem::Vector &)>()> BC_VectorTDFunction0
Definition ConditionFactory.hpp:40
mfem::real_t BC_Scalar
Definition ConditionFactory.hpp:51
std::function< std::function< void(const mfem::Vector &, mfem::Vector &)>(mfem::real_t, mfem::real_t, mfem::real_t, mfem::real_t, mfem::real_t)> IC_Function5
Definition ConditionFactory.hpp:29
std::function< std::function< void(const mfem::Vector &, mfem::real_t, mfem::Vector &)>(mfem::real_t)> BC_VectorTDFunction1
Definition ConditionFactory.hpp:42
std::function< std::function< void(const mfem::Vector &, mfem::Vector &)>()> BC_VectorFunction0
Definition ConditionFactory.hpp:32
std::function< std::function< void(const mfem::Vector &, mfem::Vector &)>(mfem::real_t)> IC_Function1
Definition ConditionFactory.hpp:20
std::function< std::function< void(const mfem::Vector &, mfem::Vector &)>()> IC_Function0
Definition ConditionFactory.hpp:19
std::function< std::function< void(const mfem::Vector &, mfem::Vector &)>(mfem::real_t, mfem::real_t)> BC_VectorFunction2
Definition ConditionFactory.hpp:34
std::function< std::function< mfem::real_t(const mfem::Vector &, mfem::real_t)>(mfem::real_t)> BC_ScalarTDFunction1
Definition ConditionFactory.hpp:47
std::function< std::function< void(const mfem::Vector &, mfem::Vector &)>(mfem::real_t)> BC_VectorFunction1
Definition ConditionFactory.hpp:33
std::function< std::function< void(const mfem::Vector &, mfem::Vector &)>(mfem::real_t, mfem::real_t, mfem::real_t)> IC_Function3
Definition ConditionFactory.hpp:23
std::function< std::function< mfem::real_t(const mfem::Vector &, mfem::real_t)>(mfem::real_t, mfem::real_t)> BC_ScalarTDFunction2
Definition ConditionFactory.hpp:49
std::function< std::function< mfem::real_t(const mfem::Vector &)>(mfem::real_t, mfem::real_t)> BC_ScalarFunction2
Definition ConditionFactory.hpp:38
std::function< std::function< mfem::real_t(const mfem::Vector &)>(mfem::real_t)> BC_ScalarFunction1
Definition ConditionFactory.hpp:37
std::function< std::function< mfem::real_t(const mfem::Vector &)>()> BC_ScalarFunction0
Definition ConditionFactory.hpp:36
mfem::Vector BC_Vector
Definition ConditionFactory.hpp:52