Commit aa545eec authored by Delchini, Marco's avatar Delchini, Marco
Browse files

Merge branch 'mxd/plasma-cm' into 'master'

Add closure model factory for plasma species

See merge request vertex/vertex-cfd!295
parents 96242f56 ac3445e5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -192,6 +192,7 @@ message(STATUS "VertexCFD Revision = '${VertexCFD_GIT_COMMIT_HASH}'")
## Set up flags for optional VERTEX-CFD physics components
##---------------------------------------------------------------------------##
option(VertexCFD_ENABLE_FULL_INDUCTION_MHD "Build full induction MHD solver" ON)
option(VertexCFD_ENABLE_PLASMA_SPECIES "Build plasma species solver" ON)

##---------------------------------------------------------------------------##
## Library
+6 −8
Original line number Diff line number Diff line
@@ -112,9 +112,6 @@ set(VERTEXCFD_CLOSUREMODEL_HEADERS
  rad_solver/closure_models/VertexCFD_Closure_RADTransmutationSourceExactSolution.hpp
  rad_solver/closure_models/VertexCFD_Closure_RADVaporRemovalSource.hpp
  rad_solver/closure_models/VertexCFD_RADClosureModelFactory.hpp
  plasma_solver/closure_models/VertexCFD_Closure_SpeciesConvectiveFlux.hpp
  plasma_solver/closure_models/VertexCFD_Closure_SpeciesEOS.hpp
  plasma_solver/closure_models/VertexCFD_Closure_SpeciesTimeDerivative.hpp
  turbulence_models/closure_models/VertexCFD_Closure_IncompressibleSpalartAllmarasDiffusivityCoefficient.hpp
  turbulence_models/closure_models/VertexCFD_Closure_IncompressibleSpalartAllmarasEddyViscosity.hpp
  turbulence_models/closure_models/VertexCFD_Closure_IncompressibleSpalartAllmarasSource.hpp
@@ -261,9 +258,6 @@ set(VERTEXCFD_CLOSUREMODEL_SOURCES
  rad_solver/closure_models/VertexCFD_RADClosureModelFactory_Tangent2d.cpp
  rad_solver/closure_models/VertexCFD_RADClosureModelFactory_Tangent3d.cpp
  rad_solver/closure_models/VertexCFD_RADClosureModelFactory.cpp
  plasma_solver/closure_models/VertexCFD_Closure_SpeciesConvectiveFlux.cpp
  plasma_solver/closure_models/VertexCFD_Closure_SpeciesEOS.cpp
  plasma_solver/closure_models/VertexCFD_Closure_SpeciesTimeDerivative.cpp
  turbulence_models/closure_models/VertexCFD_Closure_IncompressibleSpalartAllmarasDiffusivityCoefficient.cpp
  turbulence_models/closure_models/VertexCFD_Closure_IncompressibleSpalartAllmarasEddyViscosity.cpp
  turbulence_models/closure_models/VertexCFD_Closure_IncompressibleSpalartAllmarasSource.cpp
@@ -593,6 +587,12 @@ if(VertexCFD_ENABLE_FULL_INDUCTION_MHD)
  add_subdirectory(full_induction_mhd_solver)
endif()

# Plasma species solver
if(VertexCFD_ENABLE_PLASMA_SPECIES)
  add_compile_definitions(VertexCFD_ENABLE_PLASMA_SPECIES)
  add_subdirectory(plasma_solver)
endif()

# FIXME - use modern CMake to only include the Trilinos targets we need
include_directories(${Trilinos_INCLUDE_DIRS} ${Trilinos_TPL_INCLUDE_DIRS})
link_directories(${Trilinos_LIBRARY_DIRS} ${Trilinos_TPL_LIBRARY_DIRS})
@@ -702,8 +702,6 @@ if(VertexCFD_ENABLE_TESTING)
  # RAD solver
  add_subdirectory(rad_solver/closure_models/unit_test)
  add_subdirectory(rad_solver/species_properties/unit_test)
  # Species solver
  add_subdirectory(plasma_solver/closure_models/unit_test)
  # Turbulence models
  add_subdirectory(turbulence_models/closure_models/unit_test)
  add_subdirectory(turbulence_models/boundary_conditions/unit_test)
+15 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@
#include "equation_sets/VertexCFD_EquationSet_SolidInductionLessMHDFactory.hpp"
#include "induction_less_mhd_solver/closure_models/VertexCFD_SolidElectricPotentialClosureModelFactory_TemplateBuilder.hpp"
#include "linear_solvers/VertexCFD_LinearSolvers_LOWSFactoryBuilder.hpp"
#include "plasma_solver/closure_models/VertexCFD_PlasmaSpeciesClosureModelFactory_TemplateBuilder.hpp"
#include "rad_solver/closure_models/VertexCFD_RADClosureModelFactory_TemplateBuilder.hpp"

#include "utils/VertexCFD_Utils_PhysicsManager.hpp"
@@ -247,17 +248,31 @@ PhysicsManager::PhysicsManager(
    sfim_cm_factory->buildObjects(sfim_cm_builder);
#endif

#ifdef VertexCFD_ENABLE_PLASMA_SPECIES
    // Create plasma species factory
    auto plm_sp_cm_factory = Teuchos::rcp(
        new panzer::ClosureModelFactory_TemplateManager<panzer::Traits>());
    const VertexCFD::ClosureModel::PlasmaSpeciesFactoryTemplateBuilder<num_space_dim>
        plm_sp_cm_builder;
    plm_sp_cm_factory->buildObjects(plm_sp_cm_builder);
#endif

    // Initialize composite builder
    panzer::ClosureModelFactoryComposite_TemplateBuilder comp_cm_builder;
    comp_cm_builder.addFactory(ns_cm_factory);
    comp_cm_builder.addFactory(cond_cm_factory);
    comp_cm_builder.addFactory(rad_cm_factory);
    comp_cm_builder.addFactory(solid_ep_cm_factory);

#ifdef VERTEXCFD_ENABLE_FULL_INDUCTION_MHD
    comp_cm_builder.addFactory(fim_cm_factory);
    comp_cm_builder.addFactory(sfim_cm_factory);
#endif

#ifdef VertexCFD_ENABLE_PLASMA_SPECIES
    comp_cm_builder.addFactory(plm_sp_cm_factory);
#endif

    // Add composible builder to global builder
    _cm_factory = Teuchos::rcp(
        new panzer::ClosureModelFactory_TemplateManager<panzer::Traits>());
+21 −0
Original line number Diff line number Diff line
list(APPEND VERTEXCFD_CLOSUREMODEL_HEADERS
  plasma_solver/closure_models/VertexCFD_Closure_PlasmaSpeciesConvectiveFlux.hpp
  plasma_solver/closure_models/VertexCFD_Closure_PlasmaSpeciesEOS.hpp
  plasma_solver/closure_models/VertexCFD_Closure_PlasmaSpeciesTimeDerivative.hpp
  plasma_solver/closure_models/VertexCFD_PlasmaSpeciesClosureModelFactory.hpp
  plasma_solver/closure_models/VertexCFD_PlasmaSpeciesClosureModelFactory_TemplateBuilder.hpp
  plasma_solver/closure_models/VertexCFD_PlasmaSpeciesClosureModelFactoryTestHarness.hpp
  )
set(VERTEXCFD_CLOSUREMODEL_HEADERS "${VERTEXCFD_CLOSUREMODEL_HEADERS}" PARENT_SCOPE)

list(APPEND VERTEXCFD_CLOSUREMODEL_SOURCES
  plasma_solver/closure_models/VertexCFD_Closure_PlasmaSpeciesConvectiveFlux.cpp
  plasma_solver/closure_models/VertexCFD_Closure_PlasmaSpeciesEOS.cpp
  plasma_solver/closure_models/VertexCFD_Closure_PlasmaSpeciesTimeDerivative.cpp
  plasma_solver/closure_models/VertexCFD_PlasmaSpeciesClosureModelFactory.cpp
  )
set(VERTEXCFD_CLOSUREMODEL_SOURCES "${VERTEXCFD_CLOSUREMODEL_SOURCES}" PARENT_SCOPE)

if(VertexCFD_ENABLE_TESTING)
  add_subdirectory(closure_models/unit_test)
endif()
+7 −0
Original line number Diff line number Diff line
#include "utils/VertexCFD_Utils_ExplicitTemplateInstantiation.hpp"

#include "VertexCFD_Closure_SpeciesConvectiveFlux.hpp"
#include "VertexCFD_Closure_SpeciesConvectiveFlux_impl.hpp"
#include "VertexCFD_Closure_PlasmaSpeciesConvectiveFlux.hpp"
#include "VertexCFD_Closure_PlasmaSpeciesConvectiveFlux_impl.hpp"

VERTEXCFD_INSTANTIATE_TEMPLATE_CLASS_EVAL_TRAITS_NUMSPACEDIM(
    VertexCFD::ClosureModel::SpeciesConvectiveFlux)
    VertexCFD::ClosureModel::PlasmaSpeciesConvectiveFlux)
Loading