GEOSX
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
geos Namespace Reference

Namespaces

 dataRepository
 
 fields
 
 hypre
 Contains some hypre-specific functions.
 
 meshMapUtilities
 This namespace contains helper functions that facilitate access into the assortment of maps used by GEOSX mesh object managers (e.g. array2d/array1d(array1d)/ArrayOfArrays/ArrayOfSets, etc.)
 
 siloFileUtilities
 
 solidMechanicsLagrangianFEMKernels
 Namespace to contain the solid mechanics kernels.
 
 types
 Namespace containing type dispatching facilities.
 
 xmlWrapper
 

Classes

class  AverageOverQuadraturePoints1D
 
class  AverageOverQuadraturePoints1DKernelFactory
 Class to create and launch the kernel. More...
 
class  AverageOverQuadraturePointsBase
 
class  BicgstabSolver
 This class implements Bi-Conjugate Gradient Stabilized method (right-preconditioned) for monolithic and block linear operators. More...
 
class  BlockOperator
 Concrete representation of a block operator. More...
 
class  BlockOperatorView
 Abstract view of a block operator. More...
 
class  BlockOperatorWrapper
 "Shallow" representation of a block operator. More...
 
class  BlockPreconditioner
 General 2x2 block preconditioner. More...
 
class  BlockVector
 Concrete representation of a block vector. More...
 
class  BlockVectorView
 Abstract view of a block vector. More...
 
class  BlockVectorWrapper
 "Shallow" representation of a block vector. More...
 
class  BlueprintOutput
 A class for creating Conduit blueprint-based outputs. More...
 
class  BoundaryStencil
 Provides management of the boundary stencil points (stencils used to prescribe boundary conditions on domain boundaries, i.e. faces) More...
 
class  BoundaryStencilWrapper
 
class  Box
 Class to represent a geometric box in GEOSX. More...
 
class  BufferedHistoryIO
 An abstract class for performing buffered history output. More...
 
class  CellBlock
 
class  CellBlockABC
 
class  CellBlockManager
 The CellBlockManager class provides an interface to ObjectManagerBase in order to manage CellBlock data. More...
 
class  CellBlockManagerABC
 Abstract base class for CellBlockManager. More...
 
struct  CellDescriptor
 A structure containing a single cell (element) identifier triplet. More...
 
class  CellElementRegion
 
class  CellElementStencilMPFA
 Provides management of the interior stencil points when using a Multi-point flux approximation. More...
 
class  CellElementStencilTPFA
 
class  CellElementStencilTPFAWrapper
 
class  CellElementSubRegion
 
class  CgSolver
 This class implements Conjugate Gradient method for monolithic and block linear operators. More...
 
class  ChomboCoupler
 A class managing data exchange with CHOMBO. More...
 
class  ChomboIO
 
class  CIcomputationKernel
 Kernel to compute EDFM connectivity index. More...
 
struct  CommandLineOptions
 
class  ComponentMask
 Utility class that represents a mask for included/excluded component of a mask. More...
 
class  CustomPolarObject
 Class to represent a geometric disc in GEOSX. More...
 
class  Cylinder
 Class to represent a geometric cylinder in GEOSX. More...
 
class  Disc
 Class to represent a geometric disc in GEOSX. More...
 
class  DofManager
 The DoFManager is responsible for allocating global dofs, constructing sparsity patterns, and generally simplifying the interaction between PhysicsSolvers and linear algebra operations. More...
 
class  DomainPartition
 Partition of the decomposed physical domain. It also manages the connexion information to its neighbors. More...
 
class  EdgeManager
 This class provides an interface to ObjectManagerBase in order to manage edge data. More...
 
class  ElementRegionBase
 The ElementRegionBase is the base class to manage the data stored at the element level. More...
 
class  ElementRegionManager
 The ElementRegionManager class provides an interface to ObjectManagerBase in order to manage ElementRegion data. More...
 
class  ElementSubRegionBase
 
class  EmbeddedSurfaceNodeManager
 The EmbeddedSurfaceNodeManager class provides an interface to ObjectManagerBase in order to manage node data. More...
 
class  EmbeddedSurfaceSubRegion
 
class  EmbeddedSurfaceToCellStencil
 Provides management of the interior stencil points for a face elements when using Two-Point flux approximation. More...
 
class  EmbeddedSurfaceToCellStencilWrapper
 Provide access to the EmbeddedSurfaceToCellStencil that may be called from a kernel function. More...
 
class  EpetraExport
 Facilitates exporting Epetra matrix and associated vector objects (either in parallel or serial). More...
 
class  EpetraMatrix
 Wrapper class for Epetra's CrsMatrix. More...
 
class  EpetraVector
 Wrapper around Trilinos' Epetra_Vector object. More...
 
class  ExecutableGroup
 
class  ExternalMeshGeneratorBase
 Base class for external mesh generators (importers). More...
 
class  FaceBlock
 Simple implementation of the FaceBlockABC contract. More...
 
class  FaceBlockABC
 Block of 2d elements (geometrical surfaces in 3d). More...
 
class  FaceElementSubRegion
 
class  FaceElementToCellStencil
 
class  FaceElementToCellStencilWrapper
 Provides access to the FaceElementToCellStencil that may be called from a kernel function. More...
 
class  FaceManager
 The FaceManager class provides an interface to ObjectManagerBase in order to manage face data. More...
 
class  FieldIdentifiers
 
struct  FieldSpecificationAdd
 
struct  FieldSpecificationEqual
 
struct  FieldSpecificationOp
 FieldSpecificationOp. More...
 
class  FiniteVolumeManager
 
class  FixedSizeDeque
 Implement a double ended queue with fixed number of fixed size buffer to be stored. More...
 
class  FixedSizeDequeWithMutexes
 Associate mutexes with the fixedSizeDeque. More...
 
class  FluxApproximationBase
 
class  GeometricObjectManager
 Manager of the simple geometric objects. More...
 
class  GmresSolver
 This class implements Generalized Minimized RESidual method (right-preconditioned) for monolithic and block linear operators. More...
 
class  HDFFile
 
class  HDFHistoryIO
 Perform buffered history I/O for a single type(really just output) on using HDF5. More...
 
class  HistoryCollection
 
class  HistoryCollectionBase
 Intermediate class for code factorisation. It mainly deals with collector and buffer management. It delegates the actual collection to derived classes. More...
 
class  HistoryMetadata
 A minimal class to specify information about time history information being collected and output. More...
 
class  HybridMimeticDiscretization
 
class  HypreExport
 Facilitates exporting Hypre matrix and associated vector objects (either in parallel or serial). More...
 
class  HypreInterface
 This class holds aliases based on the Hypre library. More...
 
class  HypreMatrix
 Wrapper class for hypre's ParCSRMatrix. More...
 
struct  HypreMGRData
 Container for hypre preconditioner auxiliary data for MGR. More...
 
class  HyprePreconditioner
 Wrapper around hypre-based preconditioners. More...
 
struct  HyprePrecWrapper
 Container for hypre preconditioner function pointers. More...
 
class  HypreSolver
 This class creates and provides basic support for Hypre solvers. More...
 
class  HypreVector
 Wrapper class for hypre's ParVector. More...
 
struct  InputError
 Exception class used to report errors in user input. More...
 
class  InternalMeshGenerator
 The InternalMeshGenerator class is a class handling GEOSX generated meshes. More...
 
class  InternalWellboreGenerator
 The InternalWellboreGenerator class is a class generating internal wellbore mesh. More...
 
class  InternalWellGenerator
 
class  InterObjectRelation
 
class  InverseNormalOperator
 Wraps a matrix A and represents A^{-1} * A^{-T} as a linear operator. More...
 
class  KrylovSolver
 Base class for Krylov solvers. More...
 
class  LaplaceFEMKernel
 Implements kernels for solving Laplace's equation. More...
 
class  LifoStorage
 
class  LifoStorageCommon
 
class  LifoStorageCuda
 
class  LifoStorageHost
 
class  LinearOperator
 Abstract base class for linear operators. More...
 
class  LinearSolverBase
 Simple interface for linear solvers that allows to extract solution results. More...
 
struct  LinearSolverParameters
 Set of parameters for a linear solver or preconditioner. More...
 
struct  LinearSolverResult
 Results/stats of a linear solve. More...
 
class  LineBlock
 
class  LineBlockABC
 
class  mapBase
 Base template for ordered and unordered maps. More...
 
class  MappedVector
 
class  MatrixBase
 Common base template for all matrix wrapper types. More...
 
class  MeshBody
 The class is used to manage mesh body. More...
 
class  MeshGeneratorBase
 The MeshGeneratorBase class provides an abstract base class implementation for different mesh types. The MeshGeneratorBase is the Group specialization for different type of mesh handling. More...
 
class  MeshLevel
 Class facilitating the representation of a multi-level discretization of a MeshBody. More...
 
class  MeshManager
 This class manages the mesh objects in GEOSX (reservoir mesh, well mesh) More...
 
class  MeshObjectPath
 Class to hold the path to a collection of mesh objects. More...
 
struct  MpiWrapper
 
class  MultiMutexesLock
 Class to handle locks using 2 mutexes. More...
 
struct  NodeKeyHasher
 Strucure used to hash interpolation arrays representing high-order nodes. More...
 
class  NodeManager
 The NodeManager class provides an interface to ObjectManagerBase in order to manage node data. More...
 
class  NormalOperator
 Wraps a matrix A and represents A^T * A as a linear operator. More...
 
class  NotAnError
 Exception class used for special control flow. More...
 
class  ObjectManagerBase
 The ObjectManagerBase is the base object of all object managers in the mesh data hierachy. More...
 
struct  OpAdd
 OpAdd Operator that adds a value. More...
 
struct  OpEqual
 OpEqual Operator that sets a value. More...
 
class  OutputBase
 
class  OutputManager
 
class  PackCollection
 
class  ParticleBlock
 
class  ParticleBlockABC
 
class  ParticleBlockManager
 The ParticleBlockManager class provides an interface to ObjectManagerBase in order to manage ParticleBlock data. More...
 
class  ParticleBlockManagerABC
 Abstract base class for ParticleBlockManager. More...
 
class  ParticleManager
 The ParticleManager class provides an interface to ObjectManagerBase in order to manage ParticleRegion data. More...
 
class  ParticleMeshGenerator
 The ParticleMeshGenerator class is a class handling import of particle data from an externel particle file. More...
 
class  ParticleRegion
 
class  ParticleRegionBase
 The ParticleRegionBase is the base class to manage the data stored at the particle level. More...
 
class  ParticleSubRegion
 
class  ParticleSubRegionBase
 
class  PartitionDescriptor
 Simple utility to retrieve partition information in case of Metis or Spatial partition. More...
 
class  Path
 Class describing a file Path. More...
 
class  Perforation
 
class  PerforationData
 
class  PetscExport
 Facilitates exporting Petsc matrix and associated vector objects (either in parallel or serial). More...
 
class  PetscInterface
 This class holds aliases based on the Petsc library. More...
 
class  PetscMatrix
 This class creates and provides basic support for the Mat matrix object type used in PETSc. More...
 
class  PetscPreconditioner
 Wrapper around PETSc-based preconditioners. More...
 
class  PetscSolver
 This class creates and provides basic support for PETSc solvers. More...
 
class  PetscVector
 This class creates and provides basic support for Vec vector object type used in PETSc. More...
 
class  PlanarGeometricObject
 Abstract class to implement functions used by all bounded geometric objects in GEOSX, such as disc or plane. More...
 
class  PreconditionerBase
 Common interface for preconditioning operators. More...
 
class  PreconditionerBlockJacobi
 Common interface for identity preconditioning operator. More...
 
class  PreconditionerIdentity
 Common interface for identity preconditioning operator. More...
 
class  PreconditionerJacobi
 Common interface for identity preconditioning operator. More...
 
class  ProjectionEDFMHelper
 A class that contains methods to modify cell and edfm stencils based on projection edfm. More...
 
class  PythonOutput
 Performs no actual output but returns control to the Python interpreter. More...
 
class  Rectangle
 Class to represent a geometric box in GEOSX. More...
 
class  ReferenceWrapper
 
struct  Regex
 The regular expression data for validating inputs. Use rtTypes to get the regex of a type, and TypeRegex< T > to define a type regex. More...
 
class  RestartOutput
 
class  rtTypes
 Static class to manage the type selection of types at runtime and obtain the regexes of these types. Typically, these types are 'xsd:simpleType' in the XSD. More...
 
class  SeparateComponentPreconditioner
 Separate component filter implemented as a compound preconditioner. More...
 
class  SiloFile
 
class  SiloOutput
 
class  SimpleGeometricObjectBase
 Base class for the geometric objects (box, plane, cylinder). More...
 
struct  SimulationError
 Exception class used to report errors in user input. More...
 
class  SolidMechanicsLagrangianFEM
 
class  SolidMechanicsLagrangianSSLE
 
class  SolidMechanicsMPM
 
class  SolidMechanicsStateReset
 
class  SolidMechanicsStatistics
 
class  Span
 Lightweight non-owning wrapper over a contiguous range of elements. More...
 
class  StencilBase
 Provides management of the interior stencil points when using Two-Point flux approximation. More...
 
struct  StencilTraits
 A collection of properties of a stencil type. More...
 
class  StencilWrapperBase
 
class  Stopwatch
 Class defining a simple stopwatch for interval timing. More...
 
class  SuiteSparse
 Wrapper for UMFPACK direct solver from SuiteSparse package. More...
 
class  SuperLUDist
 Wrapper for SuperLU_Dist parallel direct solver. More...
 
class  SurfaceElementRegion
 
class  SurfaceElementStencil
 Provides management of the interior stencil points for a face elements when using Two-Point flux approximation. More...
 
class  SurfaceElementStencilWrapper
 Provides access to the SurfaceElementStencil that may be called from a kernel function. More...
 
class  SurfaceElementSubRegion
 
struct  surfaceWithGhostNodes
 Struct defining an embedded element which has at least on node which is a ghost on this rank. More...
 
class  Tensor
 Lightweight wrapper around a c-array. More...
 
class  ThickPlane
 Class to represent a geometric thick plane in GEOSX. More...
 
class  TimeHistoryOutput
 
class  Timer
 Object that times the duration of its existence. More...
 
struct  ToCellRelation
 Container for maps from a mesh object (node, edge or face) to cells. More...
 
class  ToElementRelation
 A relationship to an element. More...
 
class  ToParticleRelation
 A relationship to a particle. More...
 
class  TransposeOperator
 Simple class that wraps a matrix and represents its transpose as a linear operator. More...
 
class  TrilinosInterface
 This class holds aliases based on the Trilinos library. More...
 
class  TrilinosPreconditioner
 Wrapper around Trilinos-based preconditioners. More...
 
class  TrilinosSolver
 This class creates and provides basic support for AztecOO, Amesos and ML libraries. More...
 
class  TwoPointFluxApproximation
 
struct  TypeName
 Utility class for querying type names at runtime. More...
 
struct  TypeRegex
 Extension point for custom types to provide a validation regexp to schema. Do not use directly to obtain a type regex, rtTypes::getTypeRegex< T >() should be used instead. More...
 
struct  UpwindingParameters
 
class  VectorBase
 Common base template for all vector wrapper types. More...
 
class  VTKMeshGenerator
 The VTKMeshGenerator class provides a class implementation of VTK generated meshes. More...
 
class  VTKOutput
 A class for creating vtk outputs. More...
 
class  VTKWellGenerator
 The VTKWellGenerator class provides a class implementation of VTK generated well. More...
 
class  WellElementRegion
 This class specializes the element region for the case of a well. This class is also in charge of starting the construction of the well data structure in GenerateWell. More...
 
class  WellElementSubRegion
 This class describes a collection of local well elements and perforations. More...
 
class  WellGeneratorABC
 
class  WellGeneratorBase
 

Typedefs

template<int NDIM>
using defaultLayout = camp::make_idx_seq_t< NDIM >
 Defaul permutation type for NDIM-dimensional array. More...
 
using serialPolicy = RAJA::seq_exec
 
using serialAtomic = RAJA::seq_atomic
 
using serialReduce = RAJA::seq_reduce
 
using serialStream = RAJA::resources::Host
 
using serialEvent = RAJA::resources::HostEvent
 
using parallelHostPolicy = serialPolicy
 
using parallelHostReduce = serialReduce
 
using parallelHostAtomic = serialAtomic
 
using parallelHostStream = serialStream
 
using parallelHostEvent = serialEvent
 
template<size_t BLOCK_SIZE = 0>
using parallelDevicePolicy = parallelHostPolicy
 
template<size_t BLOCK_SIZE = 0>
using parallelDeviceAsyncPolicy = parallelHostPolicy
 
using parallelDeviceStream = parallelHostStream
 
using parallelDeviceEvent = parallelHostEvent
 
using parallelDeviceReduce = parallelHostReduce
 
using parallelDeviceAtomic = parallelHostAtomic
 
using parallelDeviceEvents = std::vector< parallelDeviceEvent >
 
template<typename POLICY >
using ReducePolicy = typename internalRajaInterface::PolicyMap< POLICY >::reduce
 
template<typename POLICY >
using AtomicPolicy = typename internalRajaInterface::PolicyMap< POLICY >::atomic
 
using LAInterface = GEOS_CONCAT(GEOSX_LA_INTERFACE, Interface)
 Alias for current interface.
 
using ParallelMatrix = LAInterface::ParallelMatrix
 Alias for ParallelMatrix.
 
using ParallelVector = LAInterface::ParallelVector
 Alias for ParallelVector.
 
using pmet_idx_t = int64_t
 Typedef to allow us to specify required parmetis integer type.
 
typedef InterObjectRelation< array2d< localIndex > > FixedOneToManyRelation
 A relationship from single objects to many other objects, where each object is related to the same number of objects.
 
typedef ToElementRelation< array2d< localIndex > > FixedToManyElementRelation
 A ToElementRelation where each object is related to the same number of elements.
 
typedef ToElementRelation< ArrayOfArrays< localIndex > > OrderedVariableToManyElementRelation
 A ToElementRelation where each object is related to an arbitrary number of elements.
 
typedef ToParticleRelation< array2d< localIndex > > FixedToManyParticleRelation
 A ToParticleRelation where each object is related to the same number of particles.
 
typedef ToParticleRelation< ArrayOfArrays< localIndex > > OrderedVariableToManyParticleRelation
 A ToParticleRelation where each object is related to an arbitrary number of particles.
 
using LaplaceFEMKernelFactory = finiteElement::KernelFactory< LaplaceFEMKernel, arrayView1d< globalIndex const > const, globalIndex const, CRSMatrixView< real64, globalIndex const > const, arrayView1d< real64 > const, real64 const, string const >
 The factory used to construct a LaplaceFEMKernel.
 
using CellElementStencilMPFATraits = StencilTraits< ArrayOfArrays, 2, 18, 1 >
 Describes properties of CellElementStencilMPFA. More...
 
using TwoPointStencilTraits = StencilTraits< array2d, 2, 2, 1 >
 Describes properties of a standard two-point stencil.
 
using SurfaceElementStencilTraits = StencilTraits< ArrayOfArrays, 6, 6, 15 >
 Describes properties of SurfaceElementStencil. More...
 

Enumerations

enum  LAIOutputFormat {
  NATIVE_ASCII, NATIVE_BINARY, MATLAB_ASCII, MATLAB_BINARY,
  MATRIX_MARKET
}
 
enum  RowSumType { SumValues, SumAbsValues, SumSqrValues, MaxAbsValues }
 Type of row sum to compute.
 
enum  MatrixPatternOp { Same, Subset, Restrict, Extend }
 Describes relationship between and treatment of nonzero patterns of arguments in matrix functions like addEntries().
 
enum  SchurComplementOption { SchurComplementOption::None, SchurComplementOption::FirstBlockDiagonal, SchurComplementOption::RowsumDiagonalProbing, SchurComplementOption::FirstBlockUserDefined }
 Type of Schur complement approximation used. More...
 
enum  BlockScalingOption { BlockScalingOption::None, BlockScalingOption::FrobeniusNorm, BlockScalingOption::UserProvided }
 Type of block row scaling to apply. More...
 
enum  BlockShapeOption { BlockShapeOption::Diagonal, BlockShapeOption::UpperTriangular, BlockShapeOption::LowerUpperTriangular }
 Shape of the block preconditioner. More...
 
enum  ElementType : integer {
  ElementType::Vertex, ElementType::Line, ElementType::Triangle, ElementType::Quadrilateral,
  ElementType::Polygon, ElementType::Tetrahedron, ElementType::Pyramid, ElementType::Wedge,
  ElementType::Hexahedron, ElementType::Prism5, ElementType::Prism6, ElementType::Prism7,
  ElementType::Prism8, ElementType::Prism9, ElementType::Prism10, ElementType::Prism11,
  ElementType::Polyhedron
}
 Denotes type of cell/element shape. More...
 
enum  FieldLocation { FieldLocation::Elem, FieldLocation::Face, FieldLocation::Edge, FieldLocation::Node }
 Enum defining the possible location of a field on the mesh. More...
 
enum  ParticleType : integer { ParticleType::SinglePoint, ParticleType::CPDI, ParticleType::CPTI, ParticleType::CPDI2 }
 Denotes type of particle shape/interpolation scheme. More...
 
enum  UpwindingScheme : integer { UpwindingScheme::PPU, UpwindingScheme::C1PPU, UpwindingScheme::IHU }
 Upwinding scheme. More...
 

Functions

template<typename NEW_TYPE , typename EXISTING_TYPE >
NEW_TYPE dynamicCast (EXISTING_TYPE *const val)
 Perform a type cast of base to derived pointer. More...
 
template<typename NEW_TYPE , typename EXISTING_TYPE >
NEW_TYPE dynamicCast (EXISTING_TYPE &val)
 Perform a type cast of base to derived reference. More...
 
void printTypeSummary ()
 Print a short summary of a few select type aliases.
 
void RAJA_INLINE parallelHostSync ()
 
void RAJA_INLINE parallelDeviceSync ()
 
template<typename POLICY , typename RESOURCE , typename LAMBDA >
RAJA_INLINE parallelDeviceEvent forAll (RESOURCE &&GEOS_UNUSED_PARAM(stream), const localIndex end, LAMBDA &&body)
 
RAJA_INLINE bool testAllDeviceEvents (parallelDeviceEvents &events)
 
RAJA_INLINE void waitAllDeviceEvents (parallelDeviceEvents &events)
 
template<typename POLICY , typename INDEX , typename LAMBDA >
RAJA_INLINE void forAll (INDEX const end, LAMBDA &&body)
 
template<typename POLICY , typename INDEX , typename LAMBDA >
RAJA_INLINE void forRange (INDEX const begin, INDEX const end, LAMBDA &&body)
 
void setupLogger ()
 Initialize the logger.
 
void finalizeLogger ()
 Finalize the logger.
 
void finalizeCaliper ()
 Finalize Caliper and Adiak.
 
void setupLvArray ()
 Setup the LvArray library. This initializes signal handling and the floating point environment.
 
void setupMKL ()
 Setup MKL if in use.
 
void setupOpenMP ()
 Setup OpenMP.
 
void setupMPI (int argc, char *argv[])
 Setup MPI. More...
 
void finalizeMPI ()
 Finalize MPI.
 
void setupEnvironment (int argc, char *argv[])
 Setup/init the environment. More...
 
void cleanupEnvironment ()
 Cleanup/finalize the environment.
 
template<typename T >
void pushStatsIntoAdiak (string const &name, T const value)
 Compute the sum, mean, min, and max of value across ranks and push them into Adiak using name. More...
 
template<typename ... Mutexes>
auto make_multilock (Mutexes &&... mutexes)
 Helper to construct MultiMutexesLock (usage auto lock = make_multilock( mutex1, mutex2, ... )) More...
 
std::string getAbsolutePath (std::string const &path)
 Gets the absolute path of a file. More...
 
bool isAbsolutePath (std::string const &path)
 Tells whether the path is absolute of not. More...
 
std::istream & operator>> (std::istream &is, Path &p)
 Operator use with the class Path while parsing the XML file. More...
 
std::string trimPath (std::string const &path)
 Remove the trailing slash is if present. More...
 
std::pair< std::string, std::string > splitPath (std::string const &path)
 Split the path in two parts: directory name and file name. More...
 
template<typename ... ARGS>
std::string joinPath (ARGS const &... args)
 Join parts of a path. More...
 
std::vector< std::string > readDirectory (std::string const &path)
 List all the files of one directory. More...
 
void makeDirectory (std::string const &path)
 Create a directory path, where parent directories must already exist. More...
 
void makeDirsForPath (std::string const &path)
 Make directories for path. More...
 
template<typename T >
std::enable_if< can_history_io< T >, HistoryMetadata >::type getHistoryMetadata (string const &name, ArrayView< T const, 1, 0 > const &arr, localIndex const numComps, localIndex sizeOverride=-1)
 Produce a HistoryMetadata object for a supported one-dimensional array type. More...
 
template<typename T >
std::enable_if< can_history_io< T >, HistoryMetadata >::type getHistoryMetadata (string const &name, SortedArrayView< T const > const &arr, localIndex const numComps, localIndex sizeOverride=-1)
 Produce a HistoryMetadata object for a supported one-dimensional array type. More...
 
template<typename ARRAY_T >
std::enable_if<(traits::is_array_type< ARRAY_T >) &&(ARRAY_T::NDIM > 1) &&can_history_io< typename ARRAY_T::value_type >, HistoryMetadata >::type getHistoryMetadata (string const &name, ARRAY_T const &arr, localIndex const numComps, localIndex sizeOverride=-1)
 Produce a HistoryMetadata object for multi-dimensional LvArray::Array/ArrayView types. More...
 
template<typename T >
std::enable_if< can_history_io< T >, HistoryMetadata >::type getHistoryMetadata (string const &name, const T &type, localIndex const numComps, localIndex sizeOverride=-1)
 Produce a HistoryMetadata object for a fundamental type that can_history_io. More...
 
template<typename T >
std::enable_if< can_history_io_container< T > &&!can_history_io< typename T::value_type >, HistoryMetadata >::type getHistoryMetadata (string const &name, const T &type, localIndex const numComps, localIndex sizeOverride)
 Fall-through implementation to catch attempts to collect history that cannot be collected/output. More...
 
template<typename T >
std::enable_if< !can_history_io_container< T > &&!can_history_io< T >, HistoryMetadata >::type getHistoryMetadata (string const &name, const T &type, localIndex const numComps, localIndex sizeOverride)
 Fall-through implementation to catch attempts to collect history that cannot be collected/output. More...
 
void setupLAI ()
 High level interface to call the proper LAI initialize function.
 
void finalizeLAI ()
 High level interface to call the proper LAI finalize function.
 
template<typename VECTOR >
real64 ArnoldiLargestEigenvalue (LinearOperator< VECTOR > const &op, localIndex const m=4)
 Function implementing the Arnoldi scheme to compute the largest eigenvalue. More...
 
template<typename VECTOR >
std::ostream & operator<< (std::ostream &os, BlockVectorView< VECTOR > const &vec)
 Stream insertion operator. More...
 
 ENUM_STRINGS (LinearSolverParameters::SolverType, "direct", "cg", "gmres", "fgmres", "bicgstab", "preconditioner")
 Declare strings associated with enumeration values.
 
 ENUM_STRINGS (LinearSolverParameters::PreconditionerType, "none", "jacobi", "l1jacobi", "fgs", "sgs", "l1sgs", "chebyshev", "iluk", "ilut", "icc", "ict", "amg", "mgr", "block", "direct", "bgs")
 Declare strings associated with enumeration values.
 
 ENUM_STRINGS (LinearSolverParameters::Direct::ColPerm, "none", "MMD_AtplusA", "MMD_AtA", "colAMD", "metis", "parmetis")
 Declare strings associated with enumeration values.
 
 ENUM_STRINGS (LinearSolverParameters::Direct::RowPerm, "none", "mc64")
 Declare strings associated with enumeration values.
 
 ENUM_STRINGS (LinearSolverParameters::MGR::StrategyType, "invalid", "singlePhaseReservoirFVM", "singlePhaseHybridFVM", "singlePhaseReservoirHybridFVM", "singlePhasePoromechanics", "thermalSinglePhasePoromechanics", "hybridSinglePhasePoromechanics", "singlePhasePoromechanicsEmbeddedFractures", "singlePhasePoromechanicsConformingFractures", "singlePhasePoromechanicsReservoirFVM", "compositionalMultiphaseFVM", "compositionalMultiphaseHybridFVM", "compositionalMultiphaseReservoirFVM", "compositionalMultiphaseReservoirHybridFVM", "reactiveCompositionalMultiphaseOBL", "thermalCompositionalMultiphaseFVM", "multiphasePoromechanics", "multiphasePoromechanicsReservoirFVM", "thermalMultiphasePoromechanics", "hydrofracture", "lagrangianContactMechanics", "solidMechanicsEmbeddedFractures")
 Declare strings associated with enumeration values.
 
 ENUM_STRINGS (LinearSolverParameters::AMG::CycleType, "V", "W")
 Declare strings associated with enumeration values.
 
 ENUM_STRINGS (LinearSolverParameters::AMG::PreOrPost, "pre", "post", "both")
 Declare strings associated with enumeration values.
 
 ENUM_STRINGS (LinearSolverParameters::AMG::SmootherType, "default", "jacobi", "l1jacobi", "fgs", "bgs", "sgs", "l1sgs", "chebyshev", "ilu0", "ilut", "ic0", "ict")
 Declare strings associated with enumeration values.
 
 ENUM_STRINGS (LinearSolverParameters::AMG::CoarseType, "default", "jacobi", "l1jacobi", "fgs", "sgs", "l1sgs", "chebyshev", "direct", "bgs")
 Declare strings associated with enumeration values.
 
 ENUM_STRINGS (LinearSolverParameters::AMG::CoarseningType, "default", "CLJP", "RugeStueben", "Falgout", "PMIS", "HMIS")
 Declare strings associated with enumeration values.
 
 ENUM_STRINGS (LinearSolverParameters::AMG::InterpType, "default", "modifiedClassical", "direct", "multipass", "extendedI", "standard", "extended", "directBAMG", "modifiedExtended", "modifiedExtendedI", "modifiedExtendedE")
 Declare strings associated with enumeration values.
 
 ENUM_STRINGS (LinearSolverParameters::AMG::AggInterpType, "default", "extendedIStage2", "standardStage2", "extendedStage2", "multipass", "modifiedExtended", "modifiedExtendedI", "modifiedExtendedE", "modifiedMultipass")
 Declare strings associated with enumeration values.
 
 ENUM_STRINGS (LinearSolverParameters::AMG::NullSpaceType, "constantModes", "rigidBodyModes")
 Declare strings associated with enumeration values.
 
 ENUM_STRINGS (LinearSolverResult::Status, "InProgress", "Success", "NotConverged", "Breakdown")
 Declare strings associated with enumeration values.
 
constexpr integer numElementTypes ()
 
int getElementDim (ElementType const elementType)
 Get number of spatial dimensions of element type. More...
 
 ENUM_STRINGS (ElementType, "Vertex", "BEAM", "C2D3", "C2D4", "Polygon", "C3D4", "C3D5", "C3D6", "C3D8", "PentagonalPrism", "HexagonalPrism", "HeptagonalPrism", "OctagonalPrism", "NonagonalPrism", "DecagonalPrism", "HendecagonalPrism", "Polyhedron")
 Strings for ElementType.
 
localIndex buildEdgeMaps (localIndex numNodes, ArrayOfArraysView< localIndex const > const &faceToNodeMap, ArrayOfArrays< localIndex > &faceToEdgeMap, ArrayOfArrays< localIndex > &edgeToFaceMap, array2d< localIndex > &edgeToNodeMap)
 Free function that generates face to edges, edge to faces and edge to nodes mappings. More...
 
localIndex getFaceNodes (ElementType const elementType, localIndex const elemIdx, localIndex const faceNumber, arrayView2d< localIndex const, cells::NODE_MAP_USD > const &elementToNodes, Span< localIndex > const faceNodes)
 Get the local indices of the nodes in a face of the element. More...
 
template<typename POLICY , typename T , typename COMP = std::equal_to<>>
array1d< localIndexcomputeUniqueValueOffsets (ArrayOfArraysView< T const > const &sortedLists, COMP &&comp={})
 Find and count ranges of repeated values in an array of sorted arrays and compute offsets. More...
 
template<localIndex N>
localIndex getFaceNodesPrism (localIndex const faceNum, arraySlice1d< localIndex const, cells::NODE_MAP_USD - 1 > const &elemNodes, Span< localIndex > const faceNodes)
 Get the local indices of the nodes in a face of the prism with N-sided polygon base. More...
 
real64 writeNodes (integer const logLevel, vtkDataSet &mesh, string_array &nodesetNames, CellBlockManager &cellBlockManager, const geos::R1Tensor &translate, const geos::R1Tensor &scale)
 Build all the vertex blocks. More...
 
void writeCells (integer const logLevel, vtkDataSet &mesh, const geos::vtk::CellMapType &cellMap, CellBlockManager &cellBlockManager)
 Build all the cell blocks. More...
 
void writeSurfaces (integer const logLevel, vtkDataSet &mesh, const geos::vtk::CellMapType &cellMap, CellBlockManager &cellBlockManager)
 Build the "surface" node sets from the surface information. More...
 
template<class POLICY = serialPolicy, typename LAMBDA = void>
void forAllElemsInMesh (MeshLevel const &mesh, LAMBDA &&lambda)
 Loop over all elements in a geos::MeshLevel. More...
 
template<typename LAMBDA >
auto minLocOverElemsInMesh (MeshLevel const &mesh, LAMBDA &&lambda)
 
 ENUM_STRINGS (MeshObjectPath::ObjectTypes, MeshLevel::groupStructKeys::nodeManagerString(), MeshLevel::groupStructKeys::edgeManagerString(), MeshLevel::groupStructKeys::faceManagerString(), MeshLevel::groupStructKeys::elemManagerString(), "invalid")
 Create conversion functions for ObjectTypes.
 
 ENUM_STRINGS (ParticleType, "SinglePoint", "CPDI", "CPTI", "CPDI2")
 Strings for ParticleType.
 
 ENUM_STRINGS (SurfaceElementRegion::SurfaceSubRegionType, "faceElement", "embeddedElement")
 Declare strings associated with enumeration values.
 
void erase (OrderedVariableToManyElementRelation &relation, localIndex const firstIndex, localIndex const er, localIndex const esr, localIndex const ei)
 Remove an element relation from an object in the relation. More...
 
void insert (OrderedVariableToManyElementRelation &relation, localIndex const firstIndex, localIndex const er, localIndex const esr, localIndex const ei)
 Insert an element relation for an object in the relation. More...
 
void erase (OrderedVariableToManyParticleRelation &relation, localIndex const firstIndex, localIndex const er, localIndex const esr, localIndex const ei)
 Remove a particle relation from an object in the relation. More...
 
void insert (OrderedVariableToManyParticleRelation &relation, localIndex const firstIndex, localIndex const er, localIndex const esr, localIndex const ei)
 Insert a particle relation for an object in the relation. Checks for existing membership. More...
 
void fastInsert (OrderedVariableToManyParticleRelation &relation, localIndex const firstIndex, localIndex const er, localIndex const esr, localIndex const ei)
 Insert a particle relation for an object in the relation. This is slightly faster than "insert" because it does NOT check for existing membership. More...
 
void insertMany (OrderedVariableToManyParticleRelation &relation, localIndex const firstIndex, std::vector< localIndex > const &erArray, std::vector< localIndex > const &esrArray, std::vector< localIndex > const &eiArray)
 Insert a particle relation for several objects in the relation. Does NOT check for existing membership. More...
 
void reserveNeighbors (OrderedVariableToManyParticleRelation &relation, int const numToReserve)
 Reserve a set number of entities for a particle to relate to. More...
 
template<typename T >
static std::array< T, 6 > createNodeKey (T v)
 
template<typename T >
static std::array< T, 6 > createNodeKey (T v1, T v2, int a, int order)
 
template<typename T >
static std::array< T, 6 > createNodeKey (T v1, T v2, T v3, T v4, int a, int b, int order)
 
template<typename T >
static std::array< T, 6 > createNodeKey (T const (&elemNodes)[8], int q1, int q2, int q3, int order)
 
 ENUM_STRINGS (SolidMechanicsLagrangianFEM::TimeIntegrationOption, "QuasiStatic", "ImplicitDynamic", "ExplicitDynamic")
 
 ENUM_STRINGS (SolidMechanicsMPM::TimeIntegrationOption, "QuasiStatic", "ImplicitDynamic", "ExplicitDynamic")
 
 ENUM_STRINGS (SolidMechanicsMPM::BoundaryConditionOption, "Outflow", "Symmetry")
 
 ENUM_STRINGS (UpwindingScheme, "PPU", "C1PPU", "IHU")
 Strings for upwinding scheme.
 

Variables

template<typename PERM >
static constexpr int getUSD = LvArray::typeManipulation::getStrideOneDimension( PERM {} )
 Just a handy shortcut for LvArray::typeManipulation::getStrideOneDimension. More...
 
int MPI_COMM_GEOSX
 Global MPI communicator used by GEOSX.
 
constexpr static auto GLOBALINDEX_MAX = std::numeric_limits< globalIndex >::max()
 A variable for the maximum value of a geos::globalIndex.
 
constexpr static auto LOCALINDEX_MAX = std::numeric_limits< localIndex >::max()
 A variable for the maximum value of a geos::localIndex.
 
constexpr static localIndex unmappedLocalIndexValue = -1
 A global variable for the value of a object that has not been assigned a geos::globalIndex.
 
const auto hostMemorySpace = LvArray::MemorySpace::host
 
const auto parallelHostMemorySpace = hostMemorySpace
 
const auto parallelDeviceMemorySpace = parallelHostMemorySpace
 
template<typename T >
constexpr bool can_history_io
 A constexpr bool to determine wether a type is compatible with the history collected and IO operations. More...
 
template<typename T >
constexpr bool can_history_io_container = ( traits::is_array_type< T > || traits::is_sorted_array_type< T > )
 Whether the type is a supported container for history collection and io operations. More...
 
constexpr auto generalMeshErrorAdvice
 String available for mesh errors. More...
 

Ordered and unordered map types.

template<typename TKEY , typename TVAL >
using map = mapBase< TKEY, TVAL, std::integral_constant< bool, true > >
 Ordered map type.
 
template<typename TKEY , typename TVAL >
using unordered_map = mapBase< TKEY, TVAL, std::integral_constant< bool, false > >
 Unordered map type.
 
template<typename K , typename V , typename SORTED >
std::ostream & operator<< (std::ostream &stream, mapBase< K, V, SORTED > const &map)
 Stream output operator for map types. More...
 

Detailed Description

top level geosx namespace contains all code that is specific to GEOSX

namespace to encapsulate GEOSX

Typedef Documentation

◆ CellElementStencilMPFATraits

Describes properties of CellElementStencilMPFA.

This type of stencil supports connecting exactly two elements in each flux with a larger number of points involved in the flux computation.

Definition at line 33 of file CellElementStencilMPFA.hpp.

◆ defaultLayout

template<int NDIM>
using geos::defaultLayout = typedef camp::make_idx_seq_t< NDIM >

Defaul permutation type for NDIM-dimensional array.

Template Parameters
NDIMnumber of dimensions
Note
useful when providing default template parameters

Definition at line 36 of file DataLayouts.hpp.

◆ SurfaceElementStencilTraits

Describes properties of SurfaceElementStencil.

This type of stencil allows for up to 6 surface elements to be connected in a flux computation. The total number of pairwise connections is thus: 6*(6-1)/2 = 15.

Definition at line 33 of file SurfaceElementStencil.hpp.

Enumeration Type Documentation

◆ BlockScalingOption

Type of block row scaling to apply.

Enumerator
None 

No scaling.

FrobeniusNorm 

Equilibrate Frobenius norm of the diagonal blocks.

UserProvided 

User-provided scaling.

Definition at line 46 of file BlockPreconditioner.hpp.

◆ BlockShapeOption

Shape of the block preconditioner.

Enumerator
Diagonal 

(D)^{-1}

UpperTriangular 

(DU)^{-1}

LowerUpperTriangular 

(LDU)^{-1}

Definition at line 56 of file BlockPreconditioner.hpp.

◆ ElementType

enum geos::ElementType : integer
strong

Denotes type of cell/element shape.

Enumerator
Vertex 

Single-node vertex element.

Line 

Two-node line segment.

Triangle 

Three-node triangle.

Quadrilateral 

Four-node quadrilateral.

Polygon 

General polygonal element.

Tetrahedron 

Four-node tetrahedral element.

Pyramid 

Five-node pyramid element.

Wedge 

Six-node wedge element.

Hexahedron 

Eight-node hexahedral element.

Prism5 

Ten-node pentagonal prism.

Prism6 

Twelve-node hexagonal prism.

Prism7 

Heptagonal prism.

Prism8 

Octagonal prism.

Prism9 

Nonagonal prism.

Prism10 

Decagonal prism.

Prism11 

Hendecagonal prism.

Polyhedron 

General polyhedral element.

Definition at line 30 of file ElementType.hpp.

◆ FieldLocation

enum geos::FieldLocation
strong

Enum defining the possible location of a field on the mesh.

Enumerator
Elem 

location is element (like pressure in finite volumes)

Face 

location is face (like flux in mixed finite elements)

Edge 

location is edge (like flux between fracture elements)

Node 

location is node (like displacements in finite elements)

Definition at line 31 of file FieldIdentifiers.hpp.

◆ LAIOutputFormat

enum geos::LAIOutputFormat
strong

Enumeration of available output formats for LAI objects

Definition at line 139 of file common.hpp.

◆ ParticleType

enum geos::ParticleType : integer
strong

Denotes type of particle shape/interpolation scheme.

Enumerator
SinglePoint 

Single-point (delta dirac characteristic function)

CPDI 

Convected particle domain interpolation, parallelepiped domain.

CPTI 

Convected particle tetrahedral-domain interpolation, tet domain.

CPDI2 

"2nd-order" CPDI, hexahedral domain

Definition at line 30 of file ParticleType.hpp.

◆ SchurComplementOption

Type of Schur complement approximation used.

Todo:
Need more descriptive names for options
Enumerator
None 

No Schur complement - just block-GS/block-Jacobi preconditioner.

FirstBlockDiagonal 

Approximate first block with its diagonal.

RowsumDiagonalProbing 

Rowsum-preserving diagonal approximation constructed with probing.

FirstBlockUserDefined 

User defined preconditioner for the first block.

Definition at line 35 of file BlockPreconditioner.hpp.

◆ UpwindingScheme

Upwinding scheme.

Enumerator
PPU 

PPU upwinding.

C1PPU 

C1-PPU upwinding from https://doi.org/10.1016/j.advwatres.2017.07.028.

IHU 

IHU as in https://link.springer.com/content/pdf/10.1007/s10596-019-09835-6.pdf.

Definition at line 37 of file FluxApproximationBase.hpp.

Function Documentation

◆ ArnoldiLargestEigenvalue()

template<typename VECTOR >
real64 geos::ArnoldiLargestEigenvalue ( LinearOperator< VECTOR > const &  op,
localIndex const  m = 4 
)

Function implementing the Arnoldi scheme to compute the largest eigenvalue.

Template Parameters
VECTORvector type of the linear operator
Parameters
opthe operator whose largest eigenvalue is required
mthe number of iterations (size of the Krylov subspace)
Returns
the largest eigenvalue

Definition at line 36 of file Arnoldi.hpp.

◆ buildEdgeMaps()

localIndex geos::buildEdgeMaps ( localIndex  numNodes,
ArrayOfArraysView< localIndex const > const &  faceToNodeMap,
ArrayOfArrays< localIndex > &  faceToEdgeMap,
ArrayOfArrays< localIndex > &  edgeToFaceMap,
array2d< localIndex > &  edgeToNodeMap 
)

Free function that generates face to edges, edge to faces and edge to nodes mappings.

Parameters
[in]numNodesThe number of nodes.
[in]faceToNodeMapFace to node mappings as an input.
[out]faceToEdgeMapFace to edges will be resized and filled.
[out]edgeToFaceMapEge to faces will be resized and filled.
[out]edgeToNodeMapEdge to nodes will be resized and filled.
Returns
The number of edges.

◆ computeUniqueValueOffsets()

template<typename POLICY , typename T , typename COMP = std::equal_to<>>
array1d< localIndex > geos::computeUniqueValueOffsets ( ArrayOfArraysView< T const > const &  sortedLists,
COMP &&  comp = {} 
)

Find and count ranges of repeated values in an array of sorted arrays and compute offsets.

Template Parameters
POLICYexecution policy
Tvalue type of input arrays
COMPA comparator used to compare the values.
Parameters
[in]sortedListsthe input array of sorted arrays of values.
[in]compthe comparator used to compare the values in sortedLists.
Returns
an array of size sortedLists.size() + 1, where element i contains starting index of unique values from sub-array i in a global list of unique values, while the last value contains the total number of unique edges (i.e. an exclusive scan + total reduction).

Definition at line 104 of file CellBlockUtilities.hpp.

◆ createNodeKey() [1/4]

template<typename T >
static std::array< T, 6 > geos::createNodeKey ( T const (&)  elemNodes[8],
int  q1,
int  q2,
int  q3,
int  order 
)
static
Returns
the unique interpolation array representing a Gauss-Lobatto node inside an element.
Template Parameters
Ttype of node index, usually a local or global index
Parameters
elemNodesindices of the nodes defining the element
q1first interpolation parameter
q2second interpolation parameter
q3third interpolation parameter
orderthe order of the discretization

Definition at line 337 of file MeshMapUtilities.hpp.

◆ createNodeKey() [2/4]

template<typename T >
static std::array< T, 6 > geos::createNodeKey ( v)
static
Returns
a unique interpolation array representing a high-order node coincident with a mesh vertex.
Template Parameters
Ttype of node index, usually a local or global index
Parameters
vthe mesh vertex on which the high-order node lies.

Definition at line 243 of file MeshMapUtilities.hpp.

◆ createNodeKey() [3/4]

template<typename T >
static std::array< T, 6 > geos::createNodeKey ( v1,
v2,
int  a,
int  order 
)
static
Returns
a unique interpolation array representing a high-order node on an edge.
Template Parameters
Ttype of node index, usually a local or global index
Parameters
v1the first mesh vertex defining the edge.
v2the second mesh vertex defining the edge.
athe interpolation parameter, meaning that the node is 'a' steps away from v1 towards v2
orderthe order of the discretization

Definition at line 257 of file MeshMapUtilities.hpp.

◆ createNodeKey() [4/4]

template<typename T >
static std::array< T, 6 > geos::createNodeKey ( v1,
v2,
v3,
v4,
int  a,
int  b,
int  order 
)
static
Returns
a unique interpolation array representing a high-order node on an face.
Template Parameters
Ttype of node index, usually a local or global index
Parameters
v1the first mesh vertex defining the face.
v2the second mesh vertex defining the face.
v3the third mesh vertex defining the face.
v4the fourth mesh vertex defining the face.
athe first interpolation parameter, meaning that the node is 'a' steps away from v1 towards v2 (and v3 towards v4)
bthe second interpolation parameter, meaning that the node is 'b' steps away from v1 towards v2 (and v3 towards v4)
orderthe order of the discretization

Definition at line 285 of file MeshMapUtilities.hpp.

◆ dynamicCast() [1/2]

template<typename NEW_TYPE , typename EXISTING_TYPE >
NEW_TYPE geos::dynamicCast ( EXISTING_TYPE &  val)

Perform a type cast of base to derived reference.

Template Parameters
NEW_TYPEderived reference type
EXISTING_TYPEbase type
Parameters
valbase reference to cast
Returns
reference cast to derived type or nullptr

Definition at line 94 of file DataTypes.hpp.

◆ dynamicCast() [2/2]

template<typename NEW_TYPE , typename EXISTING_TYPE >
NEW_TYPE geos::dynamicCast ( EXISTING_TYPE *const  val)

Perform a type cast of base to derived pointer.

Template Parameters
NEW_TYPEderived pointer type
EXISTING_TYPEbase type
Parameters
valbase pointer to cast
Returns
pointer cast to derived type or nullptr

Definition at line 80 of file DataTypes.hpp.

◆ erase() [1/2]

void geos::erase ( OrderedVariableToManyElementRelation relation,
localIndex const  firstIndex,
localIndex const  er,
localIndex const  esr,
localIndex const  ei 
)

Remove an element relation from an object in the relation.

Parameters
relationThe relationship mapping to remove a single element relation from a single object from.
firstIndexThe object index to remove an element relation from.
erThe element region to remove.
esrThe element subregion to remove.
eiThe element index to remove.

◆ erase() [2/2]

void geos::erase ( OrderedVariableToManyParticleRelation relation,
localIndex const  firstIndex,
localIndex const  er,
localIndex const  esr,
localIndex const  ei 
)

Remove a particle relation from an object in the relation.

Parameters
relationThe relationship mapping to remove a single particle relation from a single object from.
firstIndexThe object index to remove a particle relation from.
erThe particle region to remove.
esrThe particle subregion to remove.
eiThe particle index to remove.

◆ fastInsert()

void geos::fastInsert ( OrderedVariableToManyParticleRelation relation,
localIndex const  firstIndex,
localIndex const  er,
localIndex const  esr,
localIndex const  ei 
)

Insert a particle relation for an object in the relation. This is slightly faster than "insert" because it does NOT check for existing membership.

Parameters
relationThe relationship mapping to insert a single particle relation for a single object into.
firstIndexThe object index to insert a particle relation from.
erThe particle region to insert.
esrThe particle subregion to insert.
eiThe particle index to insert.

◆ forAllElemsInMesh()

template<class POLICY = serialPolicy, typename LAMBDA = void>
void geos::forAllElemsInMesh ( MeshLevel const &  mesh,
LAMBDA &&  lambda 
)

Loop over all elements in a geos::MeshLevel.

Template Parameters
POLICYThe execution policy for the loop over elements in a geos::ElementSubRegionBase.
LAMBDAThe type of lambda function to execute for each element.
Parameters
meshThe geos::MeshLevel that will have all of its elements processed by this function.
lambdaThe type of lambda function to execute for each element.

Definition at line 41 of file MeshForLoopInterface.hpp.

◆ getAbsolutePath()

std::string geos::getAbsolutePath ( std::string const &  path)

Gets the absolute path of a file.

Parameters
[in]paththe relative path to the file
Returns
the absolute path to the file resolved from current working directory
Exceptions
InputErrorif absolute path could not be resolved

◆ getElementDim()

int geos::getElementDim ( ElementType const  elementType)
inline

Get number of spatial dimensions of element type.

Parameters
elementTypetype of element
Returns
number of spatial dimensions (1-3)

Definition at line 67 of file ElementType.hpp.

◆ getFaceNodes()

localIndex geos::getFaceNodes ( ElementType const  elementType,
localIndex const  elemIdx,
localIndex const  faceNumber,
arrayView2d< localIndex const, cells::NODE_MAP_USD > const &  elementToNodes,
Span< localIndex > const  faceNodes 
)

Get the local indices of the nodes in a face of the element.

Parameters
[in]elementTypeType of the element
[in]elemIdxthe local index of the target element
[in]faceNumberthe local index of the target face in the element (this will be 0-numFacesInElement)
[in]elementToNodesElement to nodes mapping.
[out]faceNodesspace to write node indices to, must be of sufficient size
Returns
number of nodes in the face

◆ getFaceNodesPrism()

template<localIndex N>
localIndex geos::getFaceNodesPrism ( localIndex const  faceNum,
arraySlice1d< localIndex const, cells::NODE_MAP_USD - 1 > const &  elemNodes,
Span< localIndex > const  faceNodes 
)

Get the local indices of the nodes in a face of the prism with N-sided polygon base.

Template Parameters
Nthe number of sides in the polygon base
Parameters
[in]faceNumthe local index of the target face in the element (this will be 0-numFacesInElement)
[in]elemNodesElement to nodes mapping.
[out]faceNodesspace to write node indices to, must be of sufficient size
Returns
number of nodes in the face
Note
The function can be called only for N > 5. For N = 3 and N = 4 function getFaceNodesWedge and getFaceNodesHex, respectively, should be used.

Definition at line 36 of file PrismUtilities.hpp.

◆ getHistoryMetadata() [1/6]

template<typename ARRAY_T >
std::enable_if< ( traits::is_array_type< ARRAY_T >) && (ARRAY_T::NDIM > 1) && can_history_io< typename ARRAY_T::value_type >, HistoryMetadata >::type geos::getHistoryMetadata ( string const &  name,
ARRAY_T const &  arr,
localIndex const  numComps,
localIndex  sizeOverride = -1 
)
inline

Produce a HistoryMetadata object for multi-dimensional LvArray::Array/ArrayView types.

Template Parameters
ARRAY_TAn array type containing a packable type.
Parameters
nameThe name to give the metadata, usually dataRepository::Wrapper::getName by default.
arrThe array to produce metadata about
numCompsThe number of components in the array
sizeOverrideSpecified in order to overwrite the actual size of the array with the size specified (used when collecting only a portion of the array data).
Returns
HistoryMetadata for the provided multi-dimensional array.

Definition at line 219 of file HistoryDataSpec.hpp.

◆ getHistoryMetadata() [2/6]

template<typename T >
std::enable_if< can_history_io< T >, HistoryMetadata >::type geos::getHistoryMetadata ( string const &  name,
ArrayView< T const, 1, 0 > const &  arr,
localIndex const  numComps,
localIndex  sizeOverride = -1 
)
inline

Produce a HistoryMetadata object for a supported one-dimensional array type.

Template Parameters
TA type stored in an array that can be packed
Parameters
nameThe name to give the metadata, usually dataRepository::Wrapper::getName by default.
arrThe array to produce metadata about
numCompsUnused
sizeOverrideSpecified in order to overwrite the actual size of the array with the size specified (used when collecting only a portion of the array data).
Returns
HistoryMetadata for the provided one-dimensional array.

Definition at line 179 of file HistoryDataSpec.hpp.

◆ getHistoryMetadata() [3/6]

template<typename T >
std::enable_if< can_history_io_container< T > && !can_history_io< typename T::value_type >, HistoryMetadata >::type geos::getHistoryMetadata ( string const &  name,
const T &  type,
localIndex const  numComps,
localIndex  sizeOverride 
)
inline

Fall-through implementation to catch attempts to collect history that cannot be collected/output.

Template Parameters
TA history collection/output unsupported type.
Parameters
nameUnused
typeUnused
numCompsUnused
sizeOverrideUnused
Returns
A null HistoryMetadata, will never actually return.

Definition at line 257 of file HistoryDataSpec.hpp.

◆ getHistoryMetadata() [4/6]

template<typename T >
std::enable_if< !can_history_io_container< T > && !can_history_io< T >, HistoryMetadata >::type geos::getHistoryMetadata ( string const &  name,
const T &  type,
localIndex const  numComps,
localIndex  sizeOverride 
)
inline

Fall-through implementation to catch attempts to collect history that cannot be collected/output.

Template Parameters
TA history collection/output unsupported type.
Parameters
nameUnused
typeUnused
numCompsUnused
sizeOverrideUnused
Returns
A null HistoryMetadata, will never actually return.

Definition at line 275 of file HistoryDataSpec.hpp.

◆ getHistoryMetadata() [5/6]

template<typename T >
std::enable_if< can_history_io< T >, HistoryMetadata >::type geos::getHistoryMetadata ( string const &  name,
const T &  type,
localIndex const  numComps,
localIndex  sizeOverride = -1 
)
inline

Produce a HistoryMetadata object for a fundamental type that can_history_io.

Template Parameters
TThe type to produce HistoryMetadata for.
Parameters
nameThe name to give the metadata, usually dataRepository::Wrapper::getName by default.
typeThe data of type T to being used for history collection/output.
numCompsUnused
sizeOverrideSpecified in order to overwrite the actual size of the data. Really only here to make the getHistoryMetadata overloaded function consistent, but is still functional.
Returns
A HistoryMetadata describing a size-zero array with name "NULL" and type_index(typeid(NULL)), will never actually return.

Definition at line 239 of file HistoryDataSpec.hpp.

◆ getHistoryMetadata() [6/6]

template<typename T >
std::enable_if< can_history_io< T >, HistoryMetadata >::type geos::getHistoryMetadata ( string const &  name,
SortedArrayView< T const > const &  arr,
localIndex const  numComps,
localIndex  sizeOverride = -1 
)
inline

Produce a HistoryMetadata object for a supported one-dimensional array type.

Template Parameters
TA type stored in an array that can be packed
Parameters
nameThe name to give the metadata, usually dataRepository::Wrapper::getName by default.
arrThe array to produce metadata about
numCompsUnused
sizeOverrideSpecified in order to overwrite the actual size of the array with the size specified (used when collecting only a portion of the array data).
Returns
HistoryMetadata for the provided one-dimensional array.

Definition at line 199 of file HistoryDataSpec.hpp.

◆ insert() [1/2]

void geos::insert ( OrderedVariableToManyElementRelation relation,
localIndex const  firstIndex,
localIndex const  er,
localIndex const  esr,
localIndex const  ei 
)

Insert an element relation for an object in the relation.

Parameters
relationThe relationship mapping to insert a single element relation for a single object into.
firstIndexThe object index to insert an element relation from.
erThe element region to insert.
esrThe element subregion to insert.
eiThe element index to insert.

◆ insert() [2/2]

void geos::insert ( OrderedVariableToManyParticleRelation relation,
localIndex const  firstIndex,
localIndex const  er,
localIndex const  esr,
localIndex const  ei 
)

Insert a particle relation for an object in the relation. Checks for existing membership.

Parameters
relationThe relationship mapping to insert a single particle relation for a single object into.
firstIndexThe object index to insert a particle relation from.
erThe particle region to insert.
esrThe particle subregion to insert.
eiThe particle index to insert.

◆ insertMany()

void geos::insertMany ( OrderedVariableToManyParticleRelation relation,
localIndex const  firstIndex,
std::vector< localIndex > const &  erArray,
std::vector< localIndex > const &  esrArray,
std::vector< localIndex > const &  eiArray 
)

Insert a particle relation for several objects in the relation. Does NOT check for existing membership.

Parameters
relationThe relationship mapping to insert a single particle relation for a single object into.
firstIndexThe object index to insert a particle relation from.
erArrayThe array of particle regions to insert.
esrArrayThe array of particle subregions to insert.
eiArrayThe array of particle indices to insert.

◆ isAbsolutePath()

bool geos::isAbsolutePath ( std::string const &  path)
inline

Tells whether the path is absolute of not.

Parameters
[in]paththe input path
Return values
trueif the path is absolute
falseif the path is relative

Definition at line 151 of file Path.hpp.

◆ joinPath()

template<typename ... ARGS>
std::string geos::joinPath ( ARGS const &...  args)

Join parts of a path.

Template Parameters
ARGStypes of arguments
Parameters
argsparts of the path
Returns
the combined path

Definition at line 188 of file Path.hpp.

◆ make_multilock()

template<typename ... Mutexes>
auto geos::make_multilock ( Mutexes &&...  mutexes)

Helper to construct MultiMutexesLock (usage auto lock = make_multilock( mutex1, mutex2, ... ))

Parameters
mutexesList of mutex parameters
Returns
A MultiMutexesLock using the mutexes given in parameter.

Definition at line 83 of file MultiMutexesLock.hpp.

◆ makeDirectory()

void geos::makeDirectory ( std::string const &  path)

Create a directory path, where parent directories must already exist.

Parameters
pathThe path to create.

◆ makeDirsForPath()

void geos::makeDirsForPath ( std::string const &  path)

Make directories for path.

Parameters
pathThe path to create.

This function operates similarly to 'mkdir -p'. Everything in path is intended to be a directory. If a directory in the path already exists nothing is done. If a directory doesn't exist it is created.

◆ minLocOverElemsInMesh()

template<typename LAMBDA >
auto geos::minLocOverElemsInMesh ( MeshLevel const &  mesh,
LAMBDA &&  lambda 
)
Returns
Return the minimum location/indices for a value condition specified by lambda.
Template Parameters
LAMBDAThe type of the lambda function to be used to specify the minimum condition.
Parameters
meshThe geos::MeshLevel that will have all of its elements processed by this function.
lambdaA lambda function that returns as value that will be used in the minimum comparison.

Definition at line 62 of file MeshForLoopInterface.hpp.

◆ numElementTypes()

constexpr integer geos::numElementTypes ( )
inlineconstexpr
Returns
number of supported element types
Note
this MUST be updated if a new element type is inserted after Polyhedron

Definition at line 57 of file ElementType.hpp.

◆ operator<<() [1/2]

template<typename VECTOR >
std::ostream& geos::operator<< ( std::ostream &  os,
BlockVectorView< VECTOR > const &  vec 
)

Stream insertion operator.

Parameters
osthe output stream
vecthe vector to be printed
Returns
reference to the output stream

Definition at line 401 of file BlockVectorView.hpp.

◆ operator<<() [2/2]

template<typename K , typename V , typename SORTED >
std::ostream& geos::operator<< ( std::ostream &  stream,
mapBase< K, V, SORTED > const &  map 
)
inline

Stream output operator for map types.

Template Parameters
Kkey type
Vvalue type
SORTED
Parameters
streamoutput stream
mapthe map to print
Returns
reference to output stream

Definition at line 396 of file DataTypes.hpp.

◆ operator>>()

std::istream& geos::operator>> ( std::istream &  is,
Path p 
)

Operator use with the class Path while parsing the XML file.

Parameters
[in,out]isthe input stream
[in,out]pthe path that will be set to an absolute path relative to the xml file
Returns
the input stream

◆ pushStatsIntoAdiak()

template<typename T >
void geos::pushStatsIntoAdiak ( string const &  name,
T const  value 
)

Compute the sum, mean, min, and max of value across ranks and push them into Adiak using name.

Template Parameters
TThe type of value.
Parameters
nameThe name to use when adding the stats to Adiak.
valueThe value to compute the statistics of.

Definition at line 170 of file initializeEnvironment.hpp.

◆ readDirectory()

std::vector< std::string > geos::readDirectory ( std::string const &  path)

List all the files of one directory.

Parameters
[in]pathpath to the directory
Returns
vector containing all the file paths

◆ reserveNeighbors()

void geos::reserveNeighbors ( OrderedVariableToManyParticleRelation relation,
int const  numToReserve 
)

Reserve a set number of entities for a particle to relate to.

Parameters
relationThe relationship mapping to insert a single particle relation for a single object into.
numToReserveNumber of entities to reserve

◆ setupEnvironment()

void geos::setupEnvironment ( int  argc,
char *  argv[] 
)

Setup/init the environment.

Parameters
[in]argcthe number of command line arguments.
[in,out]argvthe command line arguments.

◆ setupMPI()

void geos::setupMPI ( int  argc,
char *  argv[] 
)

Setup MPI.

Parameters
[in]argcthe number of command line arguments.
[in,out]argvthe command line arguments.

◆ splitPath()

std::pair< std::string, std::string > geos::splitPath ( std::string const &  path)

Split the path in two parts: directory name and file name.

Parameters
[in]paththe input path
Returns
a pair of strings, containing names of the directory and the file

◆ trimPath()

std::string geos::trimPath ( std::string const &  path)
inline

Remove the trailing slash is if present.

Parameters
paththe input path
Returns
the trimmed path

Definition at line 169 of file Path.hpp.

◆ writeCells()

void geos::writeCells ( integer const  logLevel,
vtkDataSet &  mesh,
const geos::vtk::CellMapType cellMap,
CellBlockManager cellBlockManager 
)

Build all the cell blocks.

Parameters
[in]logLevelthe log level
[in]meshThe vtkUnstructuredGrid or vtkStructuredGrid that is loaded
[in]cellMapMap from the surfaces index to the list of cells in this surface in this rank.
[in]cellBlockManagerThe instance that stores the cell blocks.

◆ writeNodes()

real64 geos::writeNodes ( integer const  logLevel,
vtkDataSet &  mesh,
string_array nodesetNames,
CellBlockManager cellBlockManager,
const geos::R1Tensor translate,
const geos::R1Tensor scale 
)

Build all the vertex blocks.

Parameters
[in]logLevelthe log level
[in]meshThe vtkUnstructuredGrid or vtkStructuredGrid that is loaded
[in]nodesetNames
[in]cellBlockManagerThe instance that stores the vertex blocks.
[in]translatetranslate the dataset
[in]scalescale the dataset
Returns
size of the dataset on x-axis

◆ writeSurfaces()

void geos::writeSurfaces ( integer const  logLevel,
vtkDataSet &  mesh,
const geos::vtk::CellMapType cellMap,
CellBlockManager cellBlockManager 
)

Build the "surface" node sets from the surface information.

Parameters
[in]logLevelthe log level
[in]meshThe vtkUnstructuredGrid or vtkStructuredGrid that is loaded
[in]cellMapMap from the surfaces index to the list of cells in this surface in this rank.
[out]cellBlockManagerThe instance that stores the node sets.
Note
surfacesIdsToCellsIds will contain all the surface ids across all the MPI ranks, but only its cell ids. If the current MPI rank has no cell id for a given surface, then an empty set will be created.

Variable Documentation

◆ can_history_io

template<typename T >
constexpr bool geos::can_history_io
constexpr
Initial value:
= std::is_same< std::remove_reference_t< std::remove_const_t< T > >, char >::value ||
std::is_same< std::remove_reference_t< std::remove_const_t< T > >, signed char >::value ||
std::is_same< std::remove_reference_t< std::remove_const_t< T > >, float >::value ||
std::is_same< std::remove_reference_t< std::remove_const_t< T > >, double >::value ||
std::is_same< std::remove_reference_t< std::remove_const_t< T > >, int >::value ||
std::is_same< std::remove_reference_t< std::remove_const_t< T > >, long >::value ||
std::is_same< std::remove_reference_t< std::remove_const_t< T > >, long long >::value

A constexpr bool to determine wether a type is compatible with the history collected and IO operations.

Definition at line 30 of file HistoryDataSpec.hpp.

◆ can_history_io_container

template<typename T >
constexpr bool geos::can_history_io_container = ( traits::is_array_type< T > || traits::is_sorted_array_type< T > )
constexpr

Whether the type is a supported container for history collection and io operations.

Template Parameters
TThe type to check.

Definition at line 164 of file HistoryDataSpec.hpp.

◆ generalMeshErrorAdvice

constexpr auto geos::generalMeshErrorAdvice
inlineconstexpr
Initial value:
= "Consider checking the validity of your mesh with "
"the `mesh_doctor` GEOS python tools (documentation at"
"https://geosx-geosx.readthedocs-hosted.com/en/latest/docs/sphinx/pythonTools/mesh_doctor.html)."

String available for mesh errors.

Definition at line 113 of file ElementType.hpp.

◆ getUSD

template<typename PERM >
constexpr int geos::getUSD = LvArray::typeManipulation::getStrideOneDimension( PERM {} )
staticconstexpr

Just a handy shortcut for LvArray::typeManipulation::getStrideOneDimension.

Template Parameters
PERMsequence type containing layout permutation Value: corresponding unit stride dimension

Definition at line 44 of file DataLayouts.hpp.