Helper class for grid instantiation of ECL file-format using problems. More...

#include <CpGridVanguard.hpp>

Inheritance diagram for Opm::CpGridVanguard< TypeTag >:
Inheritance graph

Public Types

using Grid = GetPropType< TypeTag, Properties::Grid >
 
using CartesianIndexMapper = Dune::CartesianIndexMapper< Grid >
 
using EquilGrid = GetPropType< TypeTag, Properties::EquilGrid >
 
using GridView = GetPropType< TypeTag, Properties::GridView >
 
using TransmissibilityType = Transmissibility< Grid, GridView, ElementMapper, CartesianIndexMapper, Scalar >
 
using Indices = GetPropType< TypeTag, Properties::Indices >
 
using ParallelWellStruct = std::vector< std::pair< std::string, bool > >
 

Public Member Functions

 CpGridVanguard (Simulator &simulator)
 
void checkConsistency ()
 
void releaseGlobalTransmissibilities ()
 Free the memory occupied by the global transmissibility object. More...
 
const TransmissibilityTypeglobalTransmissibility () const
 
void releaseGlobalTransmissibility ()
 
void loadBalance ()
 Distribute the simulation grid over multiple processes. More...
 
unsigned int gridEquilIdxToGridIdx (unsigned int elemIndex) const
 
unsigned int gridIdxToEquilGridIdx (unsigned int elemIndex) const
 
std::function< std::array< double, dimensionworld >(int)> cellCentroids () const
 Get function to query cell centroids for a distributed grid. More...
 
const std::vector< int > & globalCell ()
 
const CartesianIndexMappercartesianMapper () const
 
const std::array< int, dimension > & cartesianDimensions () const
 Returns the number of logically Cartesian cells in each direction. More...
 
int cartesianSize () const
 Returns the overall number of cells of the logically Cartesian grid. More...
 
int equilCartesianSize () const
 Returns the overall number of cells of the logically EquilCartesian grid. More...
 
unsigned cartesianIndex (unsigned compressedCellIdx) const
 Returns the Cartesian cell id for identifaction with ECL data. More...
 
unsigned cartesianIndex (const std::array< int, dimension > &coords) const
 Return the index of the cells in the logical Cartesian grid. More...
 
int compressedIndex (int cartesianCellIdx) const
 Return compressed index from cartesian index. More...
 
int compressedIndexForInterior (int cartesianCellIdx) const
 Return compressed index from cartesian index only in interior. More...
 
void cartesianCoordinate (unsigned cellIdx, std::array< int, 3 > &ijk) const
 Extract Cartesian index triplet (i,j,k) of an active cell. More...
 
unsigned equilCartesianIndex (unsigned compressedEquilCellIdx) const
 Returns the Cartesian cell id given an element index for the grid used for equilibration. More...
 
void equilCartesianCoordinate (unsigned cellIdx, std::array< int, 3 > &ijk) const
 Extract Cartesian index triplet (i,j,k) of an active cell of the grid used for EQUIL. More...
 
Scalar cellCenterDepth (unsigned globalSpaceIdx) const
 Returns the depth of a degree of freedom [m]. More...
 
const std::vector< Scalar > & cellCenterDepths () const
 
Scalar cellThickness (unsigned globalSpaceIdx) const
 Returns the thickness of a degree of freedom [m]. More...
 
std::size_t globalNumCells () const
 Get the number of cells in the global leaf grid view. \warn This is a collective operation that needs to be called on all ranks. More...
 
void setupCartesianToCompressed_ ()
 
double setupTime ()
 Returns the wall time required to set up the simulator before it was born. More...
 
void defineSimulationModel (SimulationModelParams &&params)
 Set the simulation configuration objects. More...
 
const EclipseState & eclState () const
 Return a reference to the internalized ECL deck. More...
 
EclipseState & eclState ()
 
const Schedule & schedule () const
 Return a reference to the object that managages the ECL schedule. More...
 
Schedule & schedule ()
 
const SummaryConfig & summaryConfig () const
 Return a reference to the object that determines which quantities ought to be put into the ECL summary output. More...
 
SummaryState & summaryState ()
 Returns the summary state. More...
 
const SummaryState & summaryState () const
 
Action::State & actionState ()
 Returns the action state. More...
 
const Action::State & actionState () const
 
UDQState & udqState ()
 Returns the udq state. More...
 
const UDQState & udqState () const
 
WellTestState transferWTestState ()
 
const std::string & caseName () const
 Returns the name of the case. More...
 
Dune::EdgeWeightMethod edgeWeightsMethod () const
 Parameter deciding the edge-weight strategy of the load balancer. More...
 
int numJacobiBlocks () const
 Number of blocks in the Block-Jacobi preconditioner. More...
 
bool ownersFirst () const
 Parameter that decide if cells owned by rank are ordered before ghost cells. More...
 
bool serialPartitioning () const
 Parameter that decides if partitioning for parallel runs should be performed on a single process only. More...
 
double zoltanImbalanceTol () const
 Parameter that sets the zoltan imbalance tolarance. More...
 
const std::string & externalPartitionFile () const
 
bool enableDistributedWells () const
 Whether perforations of a well might be distributed. More...
 
const ParallelWellStructparallelWells () const
 Returns vector with name and whether the has local perforated cells for all wells. More...
 
template<class Serializer >
void serializeOp (Serializer &serializer)
 
bool operator== (const FlowGenericVanguard &rhs) const
 
Dune::CpGrid & grid ()
 Return a reference to the simulation grid. More...
 
const Dune::CpGrid & grid () const
 Return a reference to the simulation grid. More...
 
const Dune::CpGrid & equilGrid () const
 Returns a refefence to the grid which should be used by the EQUIL initialization code. More...
 
void releaseEquilGrid ()
 Indicates that the initial condition has been computed and the memory used by the EQUIL grid can be released. More...
 
const CartesianIndexMappercartesianIndexMapper () const
 Returns the object which maps a global element index of the simulation grid to the corresponding element index of the logically Cartesian index. More...
 
const CartesianIndexMapperequilCartesianIndexMapper () const
 Returns mapper from compressed to cartesian indices for the EQUIL grid. More...
 
const std::vector< int > & cellPartition () const
 

Static Public Member Functions

static void registerParameters ()
 Register the common run-time parameters for all ECL simulator vanguards. More...
 
static SimulationModelParams serializationTestParams ()
 
static std::string canonicalDeckPath (const std::string &caseName)
 Returns the canonical path to a deck file. More...
 
static void readDeck (const std::string &filename)
 Read a deck. More...
 
static void setCommunication (std::unique_ptr< Opm::Parallel::Communication > comm)
 Set global communication. More...
 
static Parallel::Communicationcomm ()
 Obtain global communicator. More...
 
static void setExternalLoadBalancer (const std::function< std::vector< int >(const Dune::CpGrid &)> &loadBalancer)
 Sets a function that returns external load balancing information when passed the grid. More...
 

Static Public Attributes

static constexpr int dimensionworld = Grid::dimensionworld
 
static constexpr bool waterEnabled = Indices::waterEnabled
 
static constexpr bool gasEnabled = Indices::gasEnabled
 
static constexpr bool oilEnabled = Indices::oilEnabled
 
static SimulationModelParams modelParams_
 

Protected Member Functions

void createGrids_ ()
 
void allocTrans () override
 
double getTransmissibility (unsigned I, unsigned J) const override
 
const std::string & zoltanParams () const override
 
void filterConnections_ ()
 
template<class CartMapper >
std::function< std::array< double, dimensionworld >(int)> cellCentroids_ (const CartMapper &cartMapper, const bool &isCpGrid) const
 Get function to query cell centroids for a distributed grid. More...
 
void callImplementationInit ()
 
void updateCartesianToCompressedMapping_ ()
 
void updateCellDepths_ ()
 
void updateCellThickness_ ()
 
void updateOutputDir_ (std::string outputDir, bool enableEclCompatFile)
 
bool drsdtconEnabled () const
 
std::unordered_map< std::size_t, const NumericalAquiferCell * > allAquiferCells () const
 
void init ()
 
void doLoadBalance_ (const Dune::EdgeWeightMethod edgeWeightsMethod, const bool ownersFirst, const bool serialPartitioning, const bool enableDistributedWells, const double zoltanImbalanceTol, const GetPropType< TypeTag, Properties::GridView > &gridView, const Schedule &schedule, EclipseState &eclState, FlowGenericVanguard::ParallelWellStruct &parallelWells, const int numJacobiBlocks)
 Distribute the simulation grid over multiple processes. More...
 
void distributeFieldProps_ (EclipseState &eclState)
 
void allocCartMapper ()
 
void doCreateGrids_ (EclipseState &eclState)
 
void addLgrsUpdateLeafView (const LgrCollection &lgrCollection, const int lgrsSize)
 
void doFilterConnections_ (Schedule &schedule)
 
GetPropType< TypeTag, Properties::Scalar > computeCellThickness (const Element &element) const
 

Protected Attributes

std::unique_ptr< TransmissibilityTypeglobalTrans_
 
std::unordered_map< int, int > cartesianToCompressed_
 Mapping between cartesian and compressed cells. It is initialized the first time it is called. More...
 
std::vector< Scalar > cellCenterDepth_
 Cell center depths. More...
 
std::vector< Scalar > cellThickness_
 Cell thickness. More...
 
std::vector< int > is_interior_
 Whether a cells is in the interior. More...
 
double setupTime_
 
std::string caseName_
 
std::string fileName_
 
Dune::EdgeWeightMethod edgeWeightsMethod_
 
bool ownersFirst_
 
bool serialPartitioning_
 
double zoltanImbalanceTol_
 
std::string zoltanParams_
 
std::string externalPartitionFile_ {}
 
bool enableDistributedWells_
 
std::string ignoredKeywords_
 
std::optional< int > outputInterval_
 
bool useMultisegmentWell_
 
bool enableExperiments_
 
std::unique_ptr< SummaryState > summaryState_
 
std::unique_ptr< UDQState > udqState_
 
std::unique_ptr< Action::State > actionState_
 
std::unique_ptr< WellTestState > wtestState_
 
std::shared_ptr< Python > python
 
std::shared_ptr< EclipseState > eclState_
 
std::shared_ptr< Schedule > eclSchedule_
 
std::shared_ptr< SummaryConfig > eclSummaryConfig_
 
ParallelWellStruct parallelWells_
 Information about wells in parallel. More...
 
std::unique_ptr< Dune::CpGrid > grid_
 
std::unique_ptr< Dune::CpGrid > equilGrid_
 
std::unique_ptr< CartesianIndexMappercartesianIndexMapper_
 
std::unique_ptr< CartesianIndexMapperequilCartesianIndexMapper_
 
int mpiRank
 
std::vector< int > cell_part_
 

Static Protected Attributes

static const int dimension = Grid::dimension
 
static std::unique_ptr< Parallel::Communicationcomm_
 

Friends

class FlowBaseVanguard< TypeTag >
 

Detailed Description

template<class TypeTag>
class Opm::CpGridVanguard< TypeTag >

Helper class for grid instantiation of ECL file-format using problems.

This class uses Dune::CpGrid as the simulation grid.

Member Typedef Documentation

◆ CartesianIndexMapper

template<class TypeTag >
using Opm::CpGridVanguard< TypeTag >::CartesianIndexMapper = Dune::CartesianIndexMapper<Grid>

◆ EquilGrid

template<class TypeTag >
using Opm::CpGridVanguard< TypeTag >::EquilGrid = GetPropType<TypeTag, Properties::EquilGrid>

◆ Grid

template<class TypeTag >
using Opm::CpGridVanguard< TypeTag >::Grid = GetPropType<TypeTag, Properties::Grid>

◆ GridView

template<class TypeTag >
using Opm::CpGridVanguard< TypeTag >::GridView = GetPropType<TypeTag, Properties::GridView>

◆ Indices

template<class TypeTag >
using Opm::CpGridVanguard< TypeTag >::Indices = GetPropType<TypeTag, Properties::Indices>

◆ ParallelWellStruct

using Opm::FlowGenericVanguard::ParallelWellStruct = std::vector<std::pair<std::string,bool> >
inherited

◆ TransmissibilityType

template<class TypeTag >
using Opm::CpGridVanguard< TypeTag >::TransmissibilityType = Transmissibility<Grid, GridView, ElementMapper, CartesianIndexMapper, Scalar>

Constructor & Destructor Documentation

◆ CpGridVanguard()

template<class TypeTag >
Opm::CpGridVanguard< TypeTag >::CpGridVanguard ( Simulator &  simulator)
inline

Member Function Documentation

◆ actionState() [1/2]

Action::State & Opm::FlowGenericVanguard::actionState ( )
inlineinherited

Returns the action state.

The ActionState keeps track of how many times the various actions have run.

References Opm::FlowGenericVanguard::actionState_.

◆ actionState() [2/2]

const Action::State & Opm::FlowGenericVanguard::actionState ( ) const
inlineinherited

◆ addLgrsUpdateLeafView()

void Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::addLgrsUpdateLeafView ( const LgrCollection &  lgrCollection,
const int  lgrsSize 
)
protectedinherited

◆ allAquiferCells()

std::unordered_map< std::size_t, const NumericalAquiferCell * > Opm::FlowGenericVanguard::allAquiferCells ( ) const
protectedinherited

◆ allocCartMapper()

void Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::allocCartMapper ( )
protectedinherited

◆ allocTrans()

◆ callImplementationInit()

◆ canonicalDeckPath()

static std::string Opm::FlowGenericVanguard::canonicalDeckPath ( const std::string &  caseName)
staticinherited

Returns the canonical path to a deck file.

The input can either be the canonical deck file name or the name of the case (i.e., without the .DATA extension)

◆ cartesianCoordinate()

template<class TypeTag >
void Opm::FlowBaseVanguard< TypeTag >::cartesianCoordinate ( unsigned  cellIdx,
std::array< int, 3 > &  ijk 
) const
inlineinherited

Extract Cartesian index triplet (i,j,k) of an active cell.

Parameters
[in]cellIdxActive cell index.
[out]ijkCartesian index triplet

◆ cartesianDimensions()

template<class TypeTag >
const std::array< int, dimension > & Opm::FlowBaseVanguard< TypeTag >::cartesianDimensions ( ) const
inlineinherited

Returns the number of logically Cartesian cells in each direction.

Referenced by Opm::FlowBaseVanguard< TypeTag >::cartesianIndex().

◆ cartesianIndex() [1/2]

template<class TypeTag >
unsigned Opm::FlowBaseVanguard< TypeTag >::cartesianIndex ( const std::array< int, dimension > &  coords) const
inlineinherited

Return the index of the cells in the logical Cartesian grid.

References Opm::FlowBaseVanguard< TypeTag >::cartesianDimensions(), and Opm::FlowBaseVanguard< TypeTag >::dimension.

◆ cartesianIndex() [2/2]

template<class TypeTag >
unsigned Opm::FlowBaseVanguard< TypeTag >::cartesianIndex ( unsigned  compressedCellIdx) const
inlineinherited

Returns the Cartesian cell id for identifaction with ECL data.

Referenced by Opm::FlowBaseVanguard< TypeTag >::updateCartesianToCompressedMapping_(), and Opm::FlowBaseVanguard< TypeTag >::updateCellDepths_().

◆ cartesianIndexMapper()

const CartesianIndexMapper & Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::cartesianIndexMapper ( ) const
inherited

Returns the object which maps a global element index of the simulation grid to the corresponding element index of the logically Cartesian index.

◆ cartesianMapper()

template<class TypeTag >
const CartesianIndexMapper & Opm::FlowBaseVanguard< TypeTag >::cartesianMapper ( ) const
inlineinherited

◆ cartesianSize()

template<class TypeTag >
int Opm::FlowBaseVanguard< TypeTag >::cartesianSize ( ) const
inlineinherited

Returns the overall number of cells of the logically Cartesian grid.

◆ caseName()

const std::string & Opm::FlowGenericVanguard::caseName ( ) const
inlineinherited

Returns the name of the case.

i.e., the all-uppercase version of the file name from which the deck is loaded with the ".DATA" suffix removed.

References Opm::FlowGenericVanguard::caseName_.

◆ cellCenterDepth()

template<class TypeTag >
Scalar Opm::FlowBaseVanguard< TypeTag >::cellCenterDepth ( unsigned  globalSpaceIdx) const
inlineinherited

Returns the depth of a degree of freedom [m].

For ECL problems this is defined as the average of the depth of an element and is thus slightly different from the depth of an element's centroid.

References Opm::FlowBaseVanguard< TypeTag >::cellCenterDepth_.

Referenced by Opm::FlowBaseVanguard< TypeTag >::updateCellDepths_().

◆ cellCenterDepths()

template<class TypeTag >
const std::vector< Scalar > & Opm::FlowBaseVanguard< TypeTag >::cellCenterDepths ( ) const
inlineinherited

◆ cellCentroids()

template<class TypeTag >
std::function< std::array< double, dimensionworld >(int)> Opm::CpGridVanguard< TypeTag >::cellCentroids ( ) const
inline

Get function to query cell centroids for a distributed grid.

Currently this only non-empty for a loadbalanced CpGrid. It is a function return the centroid for the given element index.

References Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper >, GetPropType< TypeTag, Properties::GridView >, GetPropType< TypeTag, Properties::Scalar > >::cartesianIndexMapper(), and Opm::FlowBaseVanguard< TypeTag >::cellCentroids_().

Referenced by Opm::CpGridVanguard< TypeTag >::allocTrans().

◆ cellCentroids_()

template<class TypeTag >
template<class CartMapper >
std::function< std::array< double, dimensionworld >(int)> Opm::FlowBaseVanguard< TypeTag >::cellCentroids_ ( const CartMapper &  cartMapper,
const bool &  isCpGrid 
) const
inlineprotectedinherited

Get function to query cell centroids for a distributed grid.

Currently this only non-empty for a loadbalanced CpGrid. It is a function return the centroid for the given element index.

Parameters
cartMapperThe cartesian index mapper for lookup of cartesian indices

References Opm::FlowGenericVanguard::eclState().

Referenced by Opm::AluGridVanguard< TypeTag >::cellCentroids(), Opm::CpGridVanguard< TypeTag >::cellCentroids(), and Opm::PolyhedralGridVanguard< TypeTag >::cellCentroids().

◆ cellPartition()

const std::vector< int > & Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::cellPartition ( ) const
inlineinherited

◆ cellThickness()

template<class TypeTag >
Scalar Opm::FlowBaseVanguard< TypeTag >::cellThickness ( unsigned  globalSpaceIdx) const
inlineinherited

Returns the thickness of a degree of freedom [m].

For ECL problems this is defined as the average of the depths of the top surface corners minus the average of the depths of the bottom surface corners The cell thickness is computed only when needed.

References Opm::FlowBaseVanguard< TypeTag >::cellThickness_.

◆ checkConsistency()

◆ comm()

◆ compressedIndex()

template<class TypeTag >
int Opm::FlowBaseVanguard< TypeTag >::compressedIndex ( int  cartesianCellIdx) const
inlineinherited

Return compressed index from cartesian index.

Returns
compressed index of cell is in interior, -1 otherwise

References Opm::FlowBaseVanguard< TypeTag >::cartesianToCompressed_.

◆ compressedIndexForInterior()

template<class TypeTag >
int Opm::FlowBaseVanguard< TypeTag >::compressedIndexForInterior ( int  cartesianCellIdx) const
inlineinherited

Return compressed index from cartesian index only in interior.

Returns
compressed index of cell is in interior, -1 otherwise

References Opm::FlowBaseVanguard< TypeTag >::cartesianToCompressed_, and Opm::FlowBaseVanguard< TypeTag >::is_interior_.

◆ computeCellThickness()

GetPropType< TypeTag, Properties::Scalar > Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::computeCellThickness ( const Element element) const
protectedinherited

◆ createGrids_()

◆ defineSimulationModel()

void Opm::FlowGenericVanguard::defineSimulationModel ( SimulationModelParams &&  params)
inherited

Set the simulation configuration objects.

◆ distributeFieldProps_()

void Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::distributeFieldProps_ ( EclipseState &  eclState)
protectedinherited

◆ doCreateGrids_()

void Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::doCreateGrids_ ( EclipseState &  eclState)
protectedinherited

◆ doFilterConnections_()

void Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::doFilterConnections_ ( Schedule &  schedule)
protectedinherited

◆ doLoadBalance_()

void Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::doLoadBalance_ ( const Dune::EdgeWeightMethod  edgeWeightsMethod,
const bool  ownersFirst,
const bool  serialPartitioning,
const bool  enableDistributedWells,
const double  zoltanImbalanceTol,
const GetPropType< TypeTag, Properties::GridView > &  gridView,
const Schedule &  schedule,
EclipseState &  eclState,
FlowGenericVanguard::ParallelWellStruct parallelWells,
const int  numJacobiBlocks 
)
protectedinherited

Distribute the simulation grid over multiple processes.

(For parallel simulation runs.)

◆ drsdtconEnabled()

bool Opm::FlowGenericVanguard::drsdtconEnabled ( ) const
protectedinherited

◆ eclState() [1/2]

EclipseState & Opm::FlowGenericVanguard::eclState ( )
inlineinherited

◆ eclState() [2/2]

◆ edgeWeightsMethod()

Dune::EdgeWeightMethod Opm::FlowGenericVanguard::edgeWeightsMethod ( ) const
inlineinherited

Parameter deciding the edge-weight strategy of the load balancer.

References Opm::FlowGenericVanguard::edgeWeightsMethod_.

Referenced by Opm::CpGridVanguard< TypeTag >::loadBalance().

◆ enableDistributedWells()

bool Opm::FlowGenericVanguard::enableDistributedWells ( ) const
inlineinherited

Whether perforations of a well might be distributed.

References Opm::FlowGenericVanguard::enableDistributedWells_.

Referenced by Opm::CpGridVanguard< TypeTag >::loadBalance().

◆ equilCartesianCoordinate()

template<class TypeTag >
void Opm::FlowBaseVanguard< TypeTag >::equilCartesianCoordinate ( unsigned  cellIdx,
std::array< int, 3 > &  ijk 
) const
inlineinherited

Extract Cartesian index triplet (i,j,k) of an active cell of the grid used for EQUIL.

Parameters
[in]cellIdxActive cell index.
[out]ijkCartesian index triplet

◆ equilCartesianIndex()

template<class TypeTag >
unsigned Opm::FlowBaseVanguard< TypeTag >::equilCartesianIndex ( unsigned  compressedEquilCellIdx) const
inlineinherited

Returns the Cartesian cell id given an element index for the grid used for equilibration.

◆ equilCartesianIndexMapper()

const CartesianIndexMapper & Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::equilCartesianIndexMapper ( ) const
inherited

Returns mapper from compressed to cartesian indices for the EQUIL grid.

◆ equilCartesianSize()

template<class TypeTag >
int Opm::FlowBaseVanguard< TypeTag >::equilCartesianSize ( ) const
inlineinherited

Returns the overall number of cells of the logically EquilCartesian grid.

◆ equilGrid()

const Dune::CpGrid & Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::equilGrid ( ) const
inherited

Returns a refefence to the grid which should be used by the EQUIL initialization code.

The EQUIL keyword is used to specify the initial condition of the reservoir in hydrostatic equilibrium. Since the code which does this is not accepting arbitrary DUNE grids (the code is part of the opm-core module), this is not necessarily the same as the grid which is used for the actual simulation.

◆ externalPartitionFile()

const std::string & Opm::FlowGenericVanguard::externalPartitionFile ( ) const
inlineinherited

◆ filterConnections_()

◆ getTransmissibility()

template<class TypeTag >
double Opm::CpGridVanguard< TypeTag >::getTransmissibility ( unsigned  I,
unsigned  J 
) const
inlineoverrideprotectedvirtual

◆ globalCell()

◆ globalNumCells()

template<class TypeTag >
std::size_t Opm::FlowBaseVanguard< TypeTag >::globalNumCells ( ) const
inlineinherited

Get the number of cells in the global leaf grid view. \warn This is a collective operation that needs to be called on all ranks.

◆ globalTransmissibility()

template<class TypeTag >
const TransmissibilityType & Opm::CpGridVanguard< TypeTag >::globalTransmissibility ( ) const
inline

◆ grid() [1/2]

Dune::CpGrid & Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::grid ( )
inlineinherited

Return a reference to the simulation grid.

◆ grid() [2/2]

const Dune::CpGrid & Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::grid ( ) const
inlineinherited

Return a reference to the simulation grid.

◆ gridEquilIdxToGridIdx()

template<class TypeTag >
unsigned int Opm::CpGridVanguard< TypeTag >::gridEquilIdxToGridIdx ( unsigned int  elemIndex) const
inline

◆ gridIdxToEquilGridIdx()

template<class TypeTag >
unsigned int Opm::CpGridVanguard< TypeTag >::gridIdxToEquilGridIdx ( unsigned int  elemIndex) const
inline

◆ init()

void Opm::FlowGenericVanguard::init ( )
protectedinherited

◆ loadBalance()

◆ numJacobiBlocks()

int Opm::FlowGenericVanguard::numJacobiBlocks ( ) const
inlineinherited

Number of blocks in the Block-Jacobi preconditioner.

Referenced by Opm::CpGridVanguard< TypeTag >::loadBalance().

◆ operator==()

bool Opm::FlowGenericVanguard::operator== ( const FlowGenericVanguard rhs) const
inherited

◆ ownersFirst()

bool Opm::FlowGenericVanguard::ownersFirst ( ) const
inlineinherited

Parameter that decide if cells owned by rank are ordered before ghost cells.

References Opm::FlowGenericVanguard::ownersFirst_.

Referenced by Opm::CpGridVanguard< TypeTag >::loadBalance().

◆ parallelWells()

const ParallelWellStruct & Opm::FlowGenericVanguard::parallelWells ( ) const
inlineinherited

Returns vector with name and whether the has local perforated cells for all wells.

Will only have usable values for CpGrid.

References Opm::FlowGenericVanguard::parallelWells_.

◆ readDeck()

static void Opm::FlowGenericVanguard::readDeck ( const std::string &  filename)
staticinherited

Read a deck.

Parameters
filenamefile to read

◆ registerParameters()

template<class TypeTag >
static void Opm::FlowBaseVanguard< TypeTag >::registerParameters ( )
inlinestaticinherited

Register the common run-time parameters for all ECL simulator vanguards.

◆ releaseEquilGrid()

void Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::releaseEquilGrid ( )
inherited

Indicates that the initial condition has been computed and the memory used by the EQUIL grid can be released.

Depending on the implementation, subsequent accesses to the EQUIL grid lead to crashes.

◆ releaseGlobalTransmissibilities()

template<class TypeTag >
void Opm::CpGridVanguard< TypeTag >::releaseGlobalTransmissibilities ( )
inline

Free the memory occupied by the global transmissibility object.

After writing the initial solution, this array should not be necessary anymore.

References Opm::CpGridVanguard< TypeTag >::globalTrans_.

◆ releaseGlobalTransmissibility()

template<class TypeTag >
void Opm::CpGridVanguard< TypeTag >::releaseGlobalTransmissibility ( )
inline

◆ schedule() [1/2]

Schedule & Opm::FlowGenericVanguard::schedule ( )
inlineinherited

◆ schedule() [2/2]

const Schedule & Opm::FlowGenericVanguard::schedule ( ) const
inlineinherited

Return a reference to the object that managages the ECL schedule.

References Opm::FlowGenericVanguard::eclSchedule_.

Referenced by Opm::CpGridVanguard< TypeTag >::filterConnections_(), and Opm::CpGridVanguard< TypeTag >::loadBalance().

◆ serializationTestParams()

static SimulationModelParams Opm::FlowGenericVanguard::serializationTestParams ( )
staticinherited

◆ serializeOp()

template<class Serializer >
void Opm::FlowGenericVanguard::serializeOp ( Serializer &  serializer)
inherited

◆ serialPartitioning()

bool Opm::FlowGenericVanguard::serialPartitioning ( ) const
inlineinherited

Parameter that decides if partitioning for parallel runs should be performed on a single process only.

References Opm::FlowGenericVanguard::serialPartitioning_.

Referenced by Opm::CpGridVanguard< TypeTag >::loadBalance().

◆ setCommunication()

static void Opm::FlowGenericVanguard::setCommunication ( std::unique_ptr< Opm::Parallel::Communication comm)
inlinestaticinherited

Set global communication.

References Opm::FlowGenericVanguard::comm(), and Opm::FlowGenericVanguard::comm_.

◆ setExternalLoadBalancer()

static void Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::setExternalLoadBalancer ( const std::function< std::vector< int >(const Dune::CpGrid &)> &  loadBalancer)
inlinestaticinherited

Sets a function that returns external load balancing information when passed the grid.

The information is a vector of integers indication the partition index for each cell id.

◆ setupCartesianToCompressed_()

template<class TypeTag >
void Opm::FlowBaseVanguard< TypeTag >::setupCartesianToCompressed_ ( )
inlineinherited

◆ setupTime()

double Opm::FlowGenericVanguard::setupTime ( )
inlineinherited

Returns the wall time required to set up the simulator before it was born.

References Opm::FlowGenericVanguard::setupTime_.

◆ summaryConfig()

const SummaryConfig & Opm::FlowGenericVanguard::summaryConfig ( ) const
inlineinherited

Return a reference to the object that determines which quantities ought to be put into the ECL summary output.

References Opm::FlowGenericVanguard::eclSummaryConfig_.

◆ summaryState() [1/2]

SummaryState & Opm::FlowGenericVanguard::summaryState ( )
inlineinherited

Returns the summary state.

The summary state is a small container object for computed, ready to use summary values. The values will typically be used by the UDQ, WTEST and ACTIONX calculations.

References Opm::FlowGenericVanguard::summaryState_.

◆ summaryState() [2/2]

const SummaryState & Opm::FlowGenericVanguard::summaryState ( ) const
inlineinherited

◆ transferWTestState()

WellTestState Opm::FlowGenericVanguard::transferWTestState ( )
inlineinherited

◆ udqState() [1/2]

UDQState & Opm::FlowGenericVanguard::udqState ( )
inlineinherited

Returns the udq state.

The UDQState keeps track of the result of UDQ evaluations.

References Opm::FlowGenericVanguard::udqState_.

◆ udqState() [2/2]

const UDQState & Opm::FlowGenericVanguard::udqState ( ) const
inlineinherited

◆ updateCartesianToCompressedMapping_()

◆ updateCellDepths_()

◆ updateCellThickness_()

◆ updateOutputDir_()

void Opm::FlowGenericVanguard::updateOutputDir_ ( std::string  outputDir,
bool  enableEclCompatFile 
)
protectedinherited

◆ zoltanImbalanceTol()

double Opm::FlowGenericVanguard::zoltanImbalanceTol ( ) const
inlineinherited

Parameter that sets the zoltan imbalance tolarance.

References Opm::FlowGenericVanguard::zoltanImbalanceTol_.

Referenced by Opm::CpGridVanguard< TypeTag >::loadBalance().

◆ zoltanParams()

Friends And Related Function Documentation

◆ FlowBaseVanguard< TypeTag >

template<class TypeTag >
friend class FlowBaseVanguard< TypeTag >
friend

Member Data Documentation

◆ actionState_

std::unique_ptr<Action::State> Opm::FlowGenericVanguard::actionState_
protectedinherited

◆ cartesianIndexMapper_

std::unique_ptr<CartesianIndexMapper> Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::cartesianIndexMapper_
protectedinherited

◆ cartesianToCompressed_

template<class TypeTag >
std::unordered_map<int,int> Opm::FlowBaseVanguard< TypeTag >::cartesianToCompressed_
protectedinherited

◆ caseName_

std::string Opm::FlowGenericVanguard::caseName_
protectedinherited

◆ cell_part_

std::vector<int> Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::cell_part_
protectedinherited

◆ cellCenterDepth_

template<class TypeTag >
std::vector<Scalar> Opm::FlowBaseVanguard< TypeTag >::cellCenterDepth_
protectedinherited

◆ cellThickness_

template<class TypeTag >
std::vector<Scalar> Opm::FlowBaseVanguard< TypeTag >::cellThickness_
protectedinherited

◆ comm_

std::unique_ptr<Parallel::Communication> Opm::FlowGenericVanguard::comm_
staticprotectedinherited

◆ dimension

template<class TypeTag >
const int Opm::FlowBaseVanguard< TypeTag >::dimension = Grid::dimension
staticprotectedinherited

◆ dimensionworld

template<class TypeTag >
constexpr int Opm::CpGridVanguard< TypeTag >::dimensionworld = Grid::dimensionworld
staticconstexpr

◆ eclSchedule_

std::shared_ptr<Schedule> Opm::FlowGenericVanguard::eclSchedule_
protectedinherited

◆ eclState_

std::shared_ptr<EclipseState> Opm::FlowGenericVanguard::eclState_
protectedinherited

◆ eclSummaryConfig_

std::shared_ptr<SummaryConfig> Opm::FlowGenericVanguard::eclSummaryConfig_
protectedinherited

◆ edgeWeightsMethod_

Dune::EdgeWeightMethod Opm::FlowGenericVanguard::edgeWeightsMethod_
protectedinherited

◆ enableDistributedWells_

bool Opm::FlowGenericVanguard::enableDistributedWells_
protectedinherited

◆ enableExperiments_

bool Opm::FlowGenericVanguard::enableExperiments_
protectedinherited

◆ equilCartesianIndexMapper_

std::unique_ptr<CartesianIndexMapper> Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::equilCartesianIndexMapper_
protectedinherited

◆ equilGrid_

std::unique_ptr<Dune::CpGrid> Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::equilGrid_
protectedinherited

◆ externalPartitionFile_

std::string Opm::FlowGenericVanguard::externalPartitionFile_ {}
protectedinherited

◆ fileName_

std::string Opm::FlowGenericVanguard::fileName_
protectedinherited

◆ gasEnabled

template<class TypeTag >
constexpr bool Opm::CpGridVanguard< TypeTag >::gasEnabled = Indices::gasEnabled
staticconstexpr

◆ globalTrans_

◆ grid_

std::unique_ptr<Dune::CpGrid> Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::grid_
protectedinherited

◆ ignoredKeywords_

std::string Opm::FlowGenericVanguard::ignoredKeywords_
protectedinherited

◆ is_interior_

template<class TypeTag >
std::vector<int> Opm::FlowBaseVanguard< TypeTag >::is_interior_
protectedinherited

◆ modelParams_

SimulationModelParams Opm::FlowGenericVanguard::modelParams_
staticinherited

◆ mpiRank

int Opm::GenericCpGridVanguard< GetPropType< TypeTag, Properties::ElementMapper > , GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::Scalar > >::mpiRank
protectedinherited

◆ oilEnabled

template<class TypeTag >
constexpr bool Opm::CpGridVanguard< TypeTag >::oilEnabled = Indices::oilEnabled
staticconstexpr

◆ outputInterval_

std::optional<int> Opm::FlowGenericVanguard::outputInterval_
protectedinherited

◆ ownersFirst_

bool Opm::FlowGenericVanguard::ownersFirst_
protectedinherited

◆ parallelWells_

ParallelWellStruct Opm::FlowGenericVanguard::parallelWells_
protectedinherited

Information about wells in parallel.

For each well in the model there is an entry with its name and a boolean indicating whether it perforates local cells.

Referenced by Opm::CpGridVanguard< TypeTag >::loadBalance(), and Opm::FlowGenericVanguard::parallelWells().

◆ python

std::shared_ptr<Python> Opm::FlowGenericVanguard::python
protectedinherited

◆ serialPartitioning_

bool Opm::FlowGenericVanguard::serialPartitioning_
protectedinherited

◆ setupTime_

double Opm::FlowGenericVanguard::setupTime_
protectedinherited

◆ summaryState_

std::unique_ptr<SummaryState> Opm::FlowGenericVanguard::summaryState_
protectedinherited

◆ udqState_

std::unique_ptr<UDQState> Opm::FlowGenericVanguard::udqState_
protectedinherited

◆ useMultisegmentWell_

bool Opm::FlowGenericVanguard::useMultisegmentWell_
protectedinherited

◆ waterEnabled

template<class TypeTag >
constexpr bool Opm::CpGridVanguard< TypeTag >::waterEnabled = Indices::waterEnabled
staticconstexpr

◆ wtestState_

std::unique_ptr<WellTestState> Opm::FlowGenericVanguard::wtestState_
protectedinherited

◆ zoltanImbalanceTol_

double Opm::FlowGenericVanguard::zoltanImbalanceTol_
protectedinherited

◆ zoltanParams_

std::string Opm::FlowGenericVanguard::zoltanParams_
protectedinherited

The documentation for this class was generated from the following file: