1 #ifndef VERTEXCFD_ELECTRICPOTENTIALBOUNDARYSTATE_FACTORY_HPP
2 #define VERTEXCFD_ELECTRICPOTENTIALBOUNDARYSTATE_FACTORY_HPP
4 #include "induction_less_mhd_solver/boundary_conditions/VertexCFD_BoundaryState_ElectricCurrentDensityInsulating.hpp"
5 #include "induction_less_mhd_solver/boundary_conditions/VertexCFD_BoundaryState_ElectricPotentialFixed.hpp"
6 #include "induction_less_mhd_solver/boundary_conditions/VertexCFD_BoundaryState_ElectricPotentialInsulatingWall.hpp"
8 #include <Panzer_Evaluator_WithBaseImpl.hpp>
10 #include <Teuchos_ParameterList.hpp>
11 #include <Teuchos_RCP.hpp>
15 namespace BoundaryCondition
18 template<
class EvalType,
class Traits,
int NumSpaceDim>
22 static Teuchos::RCP<PHX::Evaluator<Traits>>
23 create(
const panzer::IntegrationRule& ir,
24 const Teuchos::ParameterList& bc_params,
25 const Teuchos::ParameterList& )
27 constexpr
int num_space_dim = NumSpaceDim;
30 Teuchos::RCP<PHX::Evaluator<Traits>> state;
31 bool found_model =
false;
33 if (bc_params.isType<std::string>(
"Type"))
35 if (bc_params.get<std::string>(
"Type") ==
"Fixed")
42 if (bc_params.get<std::string>(
"Type")
43 ==
"ElectricPotentialInsulatingWall")
50 if (bc_params.get<std::string>(
"Type")
51 ==
"ElectricCurrentDensityInsulating")
63 std::string msg =
"\n\nBoundary state "
64 + bc_params.get<std::string>(
"Type")
65 +
" failed to build.\n";
66 msg +=
"The boundary conditions implemented in VertexCFD\n";
67 msg +=
"for the electric potential equation are:\n";
69 msg +=
"ElectricCurrentDensityInsulating,\n";
70 msg +=
"ElectricPotentialInsulatingWall,\n";
72 throw std::runtime_error(msg);
84 #endif // end VERTEXCFD_ELECTRICPOTENTIALBOUNDARYSTATE_FACTORY_HPP