Opm::details Namespace Reference

Classes

struct  DomainInfo
 
class  MPIPartitionFromFile
 
struct  NetworkDescriptor
 

Enumerations

enum class  NetworkDomain : std::size_t { Production = 0 , InjectionGas , InjectionWater , Count }
 

Functions

std::uint64_t isIdTPSA (std::uint32_t elemIdx1, std::uint32_t elemIdx2)
 
void printDistributionSummary (const DomainInfo &info)
 
void writeNlddFile (const std::string &file, std::string_view header, const std::vector< int > &data)
 
void outputReportStep (const SimulatorTimer &timer)
 
std::uint64_t isId (std::uint32_t elemIdx1, std::uint32_t elemIdx2)
 
std::pair< std::uint32_t, std::uint32_t > isIdReverse (const std::uint64_t &id)
 
std::uint64_t directionalIsId (std::uint32_t elemIdx1, std::uint32_t elemIdx2)
 
constexpr std::size_t domainIndex (const NetworkDomain domain)
 
template<class Well >
std::optional< NetworkDomain > domainForWell (const Well &well)
 
bool anyNetworkActive (const Schedule &schedule, const int timeStepIdx)
 Helper to check if any network (production, gas injection, water injection) is active at a given time step. More...
 
std::vector< NetworkDescriptor > activeNetworks (const Schedule &schedule, const int timeStepIdx)
 Helper to get all active networks (production, gas injection, water injection) at a given time step. More...
 
std::vector< NetworkDescriptor > networks (const Schedule &schedule, const int timeStepIdx)
 

Variables

constexpr unsigned elemIdxShift = 32
 

Enumeration Type Documentation

◆ NetworkDomain

enum class Opm::details::NetworkDomain : std::size_t
strong
Enumerator
Production 
InjectionGas 
InjectionWater 
Count 

Function Documentation

◆ activeNetworks()

std::vector< NetworkDescriptor > Opm::details::activeNetworks ( const Schedule &  schedule,
const int  timeStepIdx 
)

Helper to get all active networks (production, gas injection, water injection) at a given time step.

◆ anyNetworkActive()

bool Opm::details::anyNetworkActive ( const Schedule &  schedule,
const int  timeStepIdx 
)

Helper to check if any network (production, gas injection, water injection) is active at a given time step.

Referenced by Opm::BlackoilWellModel< TypeTag >::assemble(), and Opm::BlackoilWellModelNetwork< TypeTag >::update().

◆ directionalIsId()

◆ domainForWell()

template<class Well >
std::optional< NetworkDomain > Opm::details::domainForWell ( const Well &  well)

The network domain corresponding to a well's type (producer, or injector and water/gas injection phase), or nullopt.

References InjectionGas, InjectionWater, and Production.

Referenced by Opm::BlackoilWellModelNetwork< TypeTag >::update().

◆ domainIndex()

◆ isId()

◆ isIdReverse()

std::pair< std::uint32_t, std::uint32_t > Opm::details::isIdReverse ( const std::uint64_t &  id)

◆ isIdTPSA()

◆ networks()

std::vector< NetworkDescriptor > Opm::details::networks ( const Schedule &  schedule,
const int  timeStepIdx 
)

Helper to get all networks (production, gas injection, water injection) at a given time step, whether active or not.

◆ outputReportStep()

void Opm::details::outputReportStep ( const SimulatorTimer &  timer)

◆ printDistributionSummary()

void Opm::details::printDistributionSummary ( const DomainInfo &  info)

Print a summary of domain distribution to the log

Parameters
infoStruct holding info about the domains

Referenced by Opm::printDomainDistributionSummary().

◆ writeNlddFile()

void Opm::details::writeNlddFile ( const std::string &  file,
std::string_view  header,
const std::vector< int > &  data 
)

Write NLDD information to a text file

Parameters
fileFile to write to
headerHeader in file
dataData to write to file

Referenced by Opm::writeNonlinearIterationsPerCell(), and Opm::writePartitions().

Variable Documentation

◆ elemIdxShift

constexpr unsigned Opm::details::elemIdxShift = 32
constexpr