My Project
Loading...
Searching...
No Matches
Opm::VtkMultiPhaseModule< TypeTag > Class Template Reference

VTK output module for quantities which make sense for all models which deal with multiple fluid phases in porous media that don't use flashy concepts like interfacial area. More...

#include <vtkmultiphasemodule.hpp>

Inheritance diagram for Opm::VtkMultiPhaseModule< TypeTag >:
Opm::BaseOutputModule< TypeTag >

Public Member Functions

 VtkMultiPhaseModule (const Simulator &simulator)
 
void allocBuffers ()
 Allocate memory for the scalar fields we would like to write to the VTK file.
 
void processElement (const ElementContext &elemCtx)
 Modify the internal buffers according to the intensive quantities seen on an element.
 
void commitBuffers (BaseOutputWriter &baseWriter)
 Add all buffers to the VTK output writer.
 
bool needExtensiveQuantities () const final
 Returns true iff the module needs to access the extensive quantities of a context to do its job.
 
- Public Member Functions inherited from Opm::BaseOutputModule< TypeTag >
 BaseOutputModule (const Simulator &simulator)
 

Static Public Member Functions

static void registerParameters ()
 Register all run-time parameters for the multi-phase VTK output module.
 

Additional Inherited Members

- Public Types inherited from Opm::BaseOutputModule< TypeTag >
using ScalarBuffer = BaseOutputWriter::ScalarBuffer
 
using VectorBuffer = BaseOutputWriter::VectorBuffer
 
using TensorBuffer = BaseOutputWriter::TensorBuffer
 
using EqBuffer = std::array< ScalarBuffer, numEq >
 
using PhaseBuffer = std::array< ScalarBuffer, numPhases >
 
using ComponentBuffer = std::array< ScalarBuffer, numComponents >
 
using PhaseComponentBuffer = std::array< std::array< ScalarBuffer, numComponents >, numPhases >
 
using PhaseVectorBuffer = std::array< VectorBuffer, numPhases >
 
- Protected Types inherited from Opm::BaseOutputModule< TypeTag >
enum  BufferType { DofBuffer , VertexBuffer , ElementBuffer }
 
- Protected Member Functions inherited from Opm::BaseOutputModule< TypeTag >
void resizeScalarBuffer_ (ScalarBuffer &buffer, BufferType bufferType=DofBuffer)
 Allocate the space for a buffer storing a scalar quantity.
 
void resizeTensorBuffer_ (TensorBuffer &buffer, BufferType bufferType=DofBuffer)
 Allocate the space for a buffer storing a tensorial quantity.
 
void resizeVectorBuffer_ (VectorBuffer &buffer, BufferType bufferType=DofBuffer)
 
void resizeEqBuffer_ (EqBuffer &buffer, BufferType bufferType=DofBuffer)
 Allocate the space for a buffer storing a equation specific quantity.
 
void resizePhaseBuffer_ (PhaseBuffer &buffer, BufferType bufferType=DofBuffer)
 Allocate the space for a buffer storing a phase-specific quantity.
 
void resizeComponentBuffer_ (ComponentBuffer &buffer, BufferType bufferType=DofBuffer)
 Allocate the space for a buffer storing a component specific quantity.
 
void resizePhaseComponentBuffer_ (PhaseComponentBuffer &buffer, BufferType bufferType=DofBuffer)
 Allocate the space for a buffer storing a phase and component specific buffer.
 
void commitScalarBuffer_ (BaseOutputWriter &baseWriter, const char *name, ScalarBuffer &buffer, BufferType bufferType=DofBuffer)
 Add a buffer containing scalar quantities to the result file.
 
void commitVectorBuffer_ (BaseOutputWriter &baseWriter, const char *name, VectorBuffer &buffer, BufferType bufferType=DofBuffer)
 Add a buffer containing vectorial quantities to the result file.
 
void commitTensorBuffer_ (BaseOutputWriter &baseWriter, const char *name, TensorBuffer &buffer, BufferType bufferType=DofBuffer)
 Add a buffer containing tensorial quantities to the result file.
 
void commitPriVarsBuffer_ (BaseOutputWriter &baseWriter, const char *pattern, EqBuffer &buffer, BufferType bufferType=DofBuffer)
 Add a buffer with as many variables as PDEs to the result file.
 
void commitEqBuffer_ (BaseOutputWriter &baseWriter, const char *pattern, EqBuffer &buffer, BufferType bufferType=DofBuffer)
 Add a buffer with as many variables as PDEs to the result file.
 
void commitPhaseBuffer_ (BaseOutputWriter &baseWriter, const char *pattern, PhaseBuffer &buffer, BufferType bufferType=DofBuffer)
 Add a phase-specific buffer to the result file.
 
void commitComponentBuffer_ (BaseOutputWriter &baseWriter, const char *pattern, ComponentBuffer &buffer, BufferType bufferType=DofBuffer)
 Add a component-specific buffer to the result file.
 
void commitPhaseComponentBuffer_ (BaseOutputWriter &baseWriter, const char *pattern, PhaseComponentBuffer &buffer, BufferType bufferType=DofBuffer)
 Add a phase and component specific quantities to the output.
 
void attachScalarElementData_ (BaseOutputWriter &baseWriter, ScalarBuffer &buffer, const char *name)
 
void attachScalarVertexData_ (BaseOutputWriter &baseWriter, ScalarBuffer &buffer, const char *name)
 
void attachVectorElementData_ (BaseOutputWriter &baseWriter, VectorBuffer &buffer, const char *name)
 
void attachVectorVertexData_ (BaseOutputWriter &baseWriter, VectorBuffer &buffer, const char *name)
 
void attachTensorElementData_ (BaseOutputWriter &baseWriter, TensorBuffer &buffer, const char *name)
 
void attachTensorVertexData_ (BaseOutputWriter &baseWriter, TensorBuffer &buffer, const char *name)
 
std::size_t getBufferSize (BufferType bufferType) const
 
- Protected Attributes inherited from Opm::BaseOutputModule< TypeTag >
const Simulator & simulator_
 

Detailed Description

template<class TypeTag>
class Opm::VtkMultiPhaseModule< TypeTag >

VTK output module for quantities which make sense for all models which deal with multiple fluid phases in porous media that don't use flashy concepts like interfacial area.

This module deals with the following quantities:

  • Pressures of all fluid phases
  • Densities of all fluid phases
  • Saturations of all fluid phases
  • Mobilities of all fluid phases
  • Relative permeabilities of all fluid phases
  • Viscosities of all fluid phases
  • Average molar masses of all fluid phases
  • Porosity of the medium
  • Norm of the intrinsic permeability of the medium

Member Function Documentation

◆ allocBuffers()

template<class TypeTag >
void Opm::VtkMultiPhaseModule< TypeTag >::allocBuffers ( )
inlinevirtual

Allocate memory for the scalar fields we would like to write to the VTK file.

Implements Opm::BaseOutputModule< TypeTag >.

◆ commitBuffers()

template<class TypeTag >
void Opm::VtkMultiPhaseModule< TypeTag >::commitBuffers ( BaseOutputWriter baseWriter)
inlinevirtual

Add all buffers to the VTK output writer.

Implements Opm::BaseOutputModule< TypeTag >.

◆ needExtensiveQuantities()

template<class TypeTag >
bool Opm::VtkMultiPhaseModule< TypeTag >::needExtensiveQuantities ( ) const
inlinefinalvirtual

Returns true iff the module needs to access the extensive quantities of a context to do its job.

For example, this happens if velocities or gradients should be written. Always returning true here does not do any harm from the correctness perspective, but it slows down writing the output fields.

Reimplemented from Opm::BaseOutputModule< TypeTag >.

◆ processElement()

template<class TypeTag >
void Opm::VtkMultiPhaseModule< TypeTag >::processElement ( const ElementContext &  elemCtx)
inlinevirtual

Modify the internal buffers according to the intensive quantities seen on an element.

Implements Opm::BaseOutputModule< TypeTag >.


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