VertexCFD  0.0-dev
VertexCFD_FullInductionInitialConditionFactory_impl.hpp
1 #ifndef VERTEXCFD_FULLINDUCTIONINITIALCONDITIONFACTORY_IMPL_HPP
2 #define VERTEXCFD_FULLINDUCTIONINITIALCONDITIONFACTORY_IMPL_HPP
3 
4 #include "VertexCFD_InitialCondition_DivergenceAdvectionTest.hpp"
5 #include "VertexCFD_InitialCondition_MHDVortexProblem.hpp"
6 
7 namespace VertexCFD
8 {
9 namespace InitialCondition
10 {
11 //---------------------------------------------------------------------------//
12 template<class EvalType, int NumSpaceDim>
13 void FullInductionICFactory<EvalType, NumSpaceDim>::buildClosureModel(
14  const std::string& ic_type,
15  const std::vector<Teuchos::RCP<const panzer::PureBasis>>& bases,
16  const Teuchos::ParameterList& /*user_params*/,
17  const Teuchos::ParameterList& ic_params,
18  bool& found_model,
19  std::string& error_msg,
20  Teuchos::RCP<std::vector<Teuchos::RCP<PHX::Evaluator<panzer::Traits>>>>
21  evaluators)
22 {
23  if (ic_type == "MHDVortexProblem")
24  {
25  for (const auto& b : bases)
26  {
27  auto eval = Teuchos::rcp(
28  new MHDVortexProblem<EvalType, panzer::Traits, num_space_dim>(
29  ic_params, *b));
30  evaluators->push_back(eval);
31  found_model = true;
32  }
33  }
34 
35  if (ic_type == "DivergenceAdvectionTest")
36  {
37  for (const auto& b : bases)
38  {
39  auto eval = Teuchos::rcp(
40  new DivergenceAdvectionTest<EvalType, panzer::Traits, num_space_dim>(
41  ic_params, *b));
42  evaluators->push_back(eval);
43  found_model = true;
44  }
45  }
46 
47  error_msg = availableInitialConditions();
48 }
49 
50 //---------------------------------------------------------------------------//
51 
52 } // end namespace InitialCondition
53 } // end namespace VertexCFD
54 
55 #endif // end VERTEXCFD_FULLINDUCTIONINITIALCONDITIONFACTORY_IMPL_HPP
VertexCFD
Definition: tstMethodManufacturedSolutionBC.cpp:23