OGS
ProcessLib::BoundaryConditionAndSourceTerm Namespace Reference

Namespaces

namespace  detail
 
namespace  Python
 

Classes

class  LocalAssemblerFactory
 

Typedefs

template<typename LocalAssemblerInterface , template< typename, typename, int > class LocalAssemblerImplementation, int GlobalDim, typename... ConstructorArgs>
using LocalAssemblerFactoryPython
 

Functions

template<template< typename, typename, int > class LocalAssemblerImplementation, typename LocalAssemblerInterface , typename... ExtraCtorArgs>
void createLocalAssemblersPython (const unsigned dimension, std::vector< MeshLib::Element * > const &mesh_elements, NumLib::LocalToGlobalIndexMap const &dof_table, std::vector< std::unique_ptr< LocalAssemblerInterface > > &local_assemblers, NumLib::IntegrationOrder const integration_order, ExtraCtorArgs &&... extra_ctor_args)
 
template<template< typename, int > class LocalAssemblerImplementation, typename LocalAssemblerInterface , typename... ExtraCtorArgs>
void createLocalAssemblers (const unsigned dimension, std::vector< MeshLib::Element * > const &mesh_elements, NumLib::LocalToGlobalIndexMap const &dof_table, const unsigned shapefunction_order, std::vector< std::unique_ptr< LocalAssemblerInterface > > &local_assemblers, NumLib::IntegrationOrder const integration_order, ExtraCtorArgs &&... extra_ctor_args)
 

Typedef Documentation

◆ LocalAssemblerFactoryPython

template<typename LocalAssemblerInterface , template< typename, typename, int > class LocalAssemblerImplementation, int GlobalDim, typename... ConstructorArgs>
using ProcessLib::BoundaryConditionAndSourceTerm::LocalAssemblerFactoryPython
Initial value:
LocalAssemblerFactoryTaylorHood<
0 , 0 ,
LocalAssemblerInterface, LocalAssemblerImplementation,
NumLib::DefaultIntegrationMethodProvider, GlobalDim, ConstructorArgs...>

Definition at line 24 of file LocalAssemblerFactoryPython.h.

Function Documentation

◆ createLocalAssemblers()

template<template< typename, int > class LocalAssemblerImplementation, typename LocalAssemblerInterface , typename... ExtraCtorArgs>
void ProcessLib::BoundaryConditionAndSourceTerm::createLocalAssemblers ( const unsigned dimension,
std::vector< MeshLib::Element * > const & mesh_elements,
NumLib::LocalToGlobalIndexMap const & dof_table,
const unsigned shapefunction_order,
std::vector< std::unique_ptr< LocalAssemblerInterface > > & local_assemblers,
NumLib::IntegrationOrder const integration_order,
ExtraCtorArgs &&... extra_ctor_args )

Creates local assemblers for each element of the given mesh.

Template Parameters
LocalAssemblerImplementationthe individual local assembler type
LocalAssemblerInterfacethe general local assembler interface
ExtraCtorArgstypes of additional constructor arguments. Those arguments will be passed to the constructor of LocalAssemblerImplementation.

The first two template parameters cannot be deduced from the arguments. Therefore they always have to be provided manually.

Definition at line 73 of file CreateLocalAssemblers.h.

81{
82 DBUG("Create local assemblers.");
83
84 switch (dimension)
85 {
86 case 1:
87 detail::createLocalAssemblers<1, LocalAssemblerImplementation>(
88 dof_table, shapefunction_order, mesh_elements, local_assemblers,
89 integration_order,
90 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
91 break;
92 case 2:
93 detail::createLocalAssemblers<2, LocalAssemblerImplementation>(
94 dof_table, shapefunction_order, mesh_elements, local_assemblers,
95 integration_order,
96 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
97 break;
98 case 3:
99 detail::createLocalAssemblers<3, LocalAssemblerImplementation>(
100 dof_table, shapefunction_order, mesh_elements, local_assemblers,
101 integration_order,
102 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
103 break;
104 default:
105 OGS_FATAL(
106 "Meshes with dimension greater than three are not supported.");
107 }
108}
#define OGS_FATAL(...)
Definition Error.h:26
void DBUG(fmt::format_string< Args... > fmt, Args &&... args)
Definition Logging.h:30

References DBUG(), and OGS_FATAL.

Referenced by ProcessLib::ConstraintDirichletBoundaryCondition::ConstraintDirichletBoundaryCondition(), and ProcessLib::VolumetricSourceTerm::VolumetricSourceTerm().

◆ createLocalAssemblersPython()

template<template< typename, typename, int > class LocalAssemblerImplementation, typename LocalAssemblerInterface , typename... ExtraCtorArgs>
void ProcessLib::BoundaryConditionAndSourceTerm::createLocalAssemblersPython ( const unsigned dimension,
std::vector< MeshLib::Element * > const & mesh_elements,
NumLib::LocalToGlobalIndexMap const & dof_table,
std::vector< std::unique_ptr< LocalAssemblerInterface > > & local_assemblers,
NumLib::IntegrationOrder const integration_order,
ExtraCtorArgs &&... extra_ctor_args )

Creates a local assembler for each of the given mesh_elements.

Template Parameters
LocalAssemblerImplementationthe individual local assembler type
LocalAssemblerInterfacethe general local assembler interface
ExtraCtorArgstypes of additional constructor arguments. Those arguments will be passed to the constructor of LocalAssemblerImplementation.

The first two template parameters cannot be deduced from the arguments. Therefore they always have to be provided manually.

Definition at line 73 of file CreateLocalAssemblers.h.

80{
81 DBUG("Create local assemblers.");
82
83 switch (dimension)
84 {
85 case 1:
86 detail::createLocalAssemblersPython<1,
87 LocalAssemblerImplementation>(
88 dof_table, mesh_elements, local_assemblers, integration_order,
89 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
90 break;
91 case 2:
92 detail::createLocalAssemblersPython<2,
93 LocalAssemblerImplementation>(
94 dof_table, mesh_elements, local_assemblers, integration_order,
95 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
96 break;
97 case 3:
98 detail::createLocalAssemblersPython<3,
99 LocalAssemblerImplementation>(
100 dof_table, mesh_elements, local_assemblers, integration_order,
101 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
102 break;
103 default:
104 OGS_FATAL(
105 "Meshes with dimension greater than three are not supported.");
106 }
107}

References DBUG(), and OGS_FATAL.

Referenced by ProcessLib::PythonBoundaryCondition::PythonBoundaryCondition(), and ProcessLib::SourceTerms::Python::PythonSourceTerm::PythonSourceTerm().