InstantiationIndicesMacros.hpp File Reference
#include <opm/material/fluidsystems/BlackOilFluidSystem.hpp>
#include <opm/material/fluidsystems/BlackOilDefaultFluidSystemIndices.hpp>
#include <opm/models/blackoil/blackoilvariableandequationindices.hh>
#include <opm/models/blackoil/blackoilonephaseindices.hh>
#include <opm/models/blackoil/blackoiltwophaseindices.hh>
Include dependency graph for InstantiationIndicesMacros.hpp:

Go to the source code of this file.

Macros

#define INSTANTIATE_CLASS(CLASS, T, ...)    template class CLASS<FS<T>,__VA_ARGS__>;
 
#define INSTANTIATE_TYPE_INDICES(CLASS, T)
 

Typedefs

template<class Scalar >
using FS = Opm::BlackOilFluidSystem< Scalar, Opm::BlackOilDefaultFluidSystemIndices >
 Macro INSTANTIATE_TYPE_INDICES is used to to instantiate a template class with various predefined index configurations. More...
 

Macro Definition Documentation

◆ INSTANTIATE_CLASS

#define INSTANTIATE_CLASS (   CLASS,
  T,
  ... 
)     template class CLASS<FS<T>,__VA_ARGS__>;

◆ INSTANTIATE_TYPE_INDICES

#define INSTANTIATE_TYPE_INDICES (   CLASS,
 
)
Value:
INSTANTIATE_CLASS(CLASS,T,BlackOilOnePhaseIndices<0u,0u,0u,0u,false,false,0u,1u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilOnePhaseIndices<0u,0u,0u,1u,false,false,0u,1u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilOnePhaseIndices<0u,0u,0u,0u,false,false,0u,1u,5u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilTwoPhaseIndices<0u,0u,0u,0u,false,false,0u,0u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilTwoPhaseIndices<0u,0u,0u,0u,false,false,0u,1u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilTwoPhaseIndices<0u,0u,0u,0u,false,false,0u,2u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilTwoPhaseIndices<0u,0u,0u,0u,false,true,0u,2u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilTwoPhaseIndices<0u,0u,1u,0u,false,false,0u,2u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilTwoPhaseIndices<0u,0u,2u,0u,false,false,0u,2u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilTwoPhaseIndices<0u,0u,0u,1u,false,false,0u,1u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilTwoPhaseIndices<0u,0u,0u,0u,false,true,0u,0u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilTwoPhaseIndices<0u,0u,0u,1u,false,false,0u,0u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilTwoPhaseIndices<0u,0u,0u,1u,false,true,0u,0u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilTwoPhaseIndices<1u,0u,0u,0u,false,false,0u,0u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilVariableAndEquationIndices<0u,0u,0u,0u,false,false,0u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilVariableAndEquationIndices<0u,0u,0u,0u,true,false,0u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilVariableAndEquationIndices<0u,0u,0u,0u,false,true,0u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilVariableAndEquationIndices<0u,0u,0u,0u,false,true,2u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilVariableAndEquationIndices<1u,0u,0u,0u,false,false,0u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilVariableAndEquationIndices<0u,1u,0u,0u,false,false,0u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilVariableAndEquationIndices<0u,0u,1u,0u,false,false,0u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilVariableAndEquationIndices<0u,0u,0u,1u,false,false,0u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilVariableAndEquationIndices<0u,0u,0u,0u,false,false,1u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilVariableAndEquationIndices<0u,0u,0u,1u,false,true,0u,0u>) \
INSTANTIATE_CLASS(CLASS,T,BlackOilVariableAndEquationIndices<1u,0u,0u,0u,true,false,0u,0u>)
#define INSTANTIATE_CLASS(CLASS, T,...)
Definition: InstantiationIndicesMacros.hpp:62

Typedef Documentation

◆ FS

template<class Scalar >
using FS = Opm::BlackOilFluidSystem<Scalar, Opm::BlackOilDefaultFluidSystemIndices>

Macro INSTANTIATE_TYPE_INDICES is used to to instantiate a template class with various predefined index configurations.

Parameters
CLASSThe name of the class template to instantiate.
TThe scalar type (e.g., double or float) used in the instantiation.

The macro internally uses INSTANTIATE_CLASS to instantiate the provided class template with combinations of BlackOilOnePhaseIndices, BlackOilTwoPhaseIndices, and BlackOilVariableAndEquationIndices (three phase variants). These indices represent different configurations for different physical systems to be simulated.

\usage Example usage in a source file:

INSTANTIATE_TYPE_INDICES(MyClass, double)
#if FLOW_INSTANTIATE_FLOAT
INSTANTIATE_TYPE_INDICES(MyClass, float)
#endif
#define INSTANTIATE_TYPE_INDICES(CLASS, T)
Definition: InstantiationIndicesMacros.hpp:65

This will instantiate MyClass with all predefined index configurations for both double and float scalar types (if FLOW_INSTANTIATE_FLOAT is defined).