1 #ifndef VERTEXCFD_INCOMPRESSIBLELSVOFBOUNDARYSTATE_FACTORY_HPP
2 #define VERTEXCFD_INCOMPRESSIBLELSVOFBOUNDARYSTATE_FACTORY_HPP
4 #include "incompressible_lsvof_solver/boundary_conditions/VertexCFD_BoundaryState_IncompressibleLSVOFNoSlip.hpp"
6 #include <Panzer_Evaluator_WithBaseImpl.hpp>
8 #include <Teuchos_ParameterList.hpp>
9 #include <Teuchos_RCP.hpp>
13 namespace BoundaryCondition
16 template<
class EvalType,
class Traits,
int NumSpaceDim>
20 static Teuchos::RCP<PHX::Evaluator<Traits>>
21 create(
const panzer::IntegrationRule& ir,
22 const std::vector<std::string>& all_phase_names,
23 const Teuchos::ParameterList& bc_params,
24 const Teuchos::ParameterList& lsvof_params,
25 const Teuchos::ParameterList& )
28 constexpr
int num_space_dim = NumSpaceDim;
31 const int num_lsvof_dofs = all_phase_names.size() - 1;
34 const std::string continuity_model_name
35 = lsvof_params.isType<std::string>(
"Continuity Model")
36 ? lsvof_params.get<std::string>(
"Continuity Model")
40 const bool build_mom_equ
41 = lsvof_params.isType<
bool>(
"Build LSVOF Navier-Stokes Equations")
42 ? lsvof_params.get<
bool>(
43 "Build LSVOF Navier-Stokes Equations")
47 Teuchos::RCP<PHX::Evaluator<Traits>> state;
48 bool found_model =
false;
50 if (bc_params.isType<std::string>(
"Type"))
52 if (bc_params.get<std::string>(
"Type") ==
"No-Slip")
58 continuity_model_name,
67 std::string msg =
"\n\nBoundary state "
68 + bc_params.get<std::string>(
"Type")
69 +
" failed to build.\n";
70 msg +=
"The boundary conditions implemented in VertexCFD are:\n";
73 throw std::runtime_error(msg);
85 #endif // end VERTEXCFD_INCOMPRESSIBLELSVOFBOUNDARYSTATE_FACTORY_HPP