1 #ifndef VERTEXCFD_FULLINDUCTIONBOUNDARYSTATE_FACTORY_HPP
2 #define VERTEXCFD_FULLINDUCTIONBOUNDARYSTATE_FACTORY_HPP
4 #include "closure_models/VertexCFD_Closure_ConstantScalarField.hpp"
6 #include "full_induction_mhd_solver/boundary_conditions/VertexCFD_BoundaryState_FullInductionConducting.hpp"
7 #include "full_induction_mhd_solver/boundary_conditions/VertexCFD_BoundaryState_FullInductionFixed.hpp"
9 #include "full_induction_mhd_solver/mhd_properties/VertexCFD_FullInductionMHDProperties.hpp"
11 #include <Panzer_Evaluator_WithBaseImpl.hpp>
13 #include <Teuchos_ParameterList.hpp>
14 #include <Teuchos_RCP.hpp>
18 namespace BoundaryCondition
21 template<
class EvalType,
class Traits,
int NumSpaceDim>
25 static constexpr
int num_space_dim = NumSpaceDim;
27 static Teuchos::RCP<PHX::Evaluator<Traits>>
28 create(
const panzer::IntegrationRule& ir,
29 const Teuchos::ParameterList& bc_params,
34 Teuchos::RCP<PHX::Evaluator<Traits>> state;
35 bool found_model =
false;
37 if (bc_params.isType<std::string>(
"Type"))
39 const auto bc_type = bc_params.get<std::string>(
"Type");
41 if (bc_type ==
"Conducting")
45 ir, bc_params, mhd_props));
49 if (bc_type ==
"Fixed")
53 ir, bc_params, mhd_props));
60 std::string msg =
"\n\nBoundary state " + bc_type
61 +
" failed to build.\n";
62 msg +=
"The boundary conditions implemented in VERTEX-CFD\n";
63 msg +=
"for the full induction equations are:\n";
64 msg +=
"Conducting,\n";
67 throw std::runtime_error(msg);
81 #endif // end VERTEXCFD_FULLINDUCTIONBOUNDARYSTATE_FACTORY_HPP