Ewoms::BaseOutputModule< TypeTag > Class Template Referenceabstract

The base class for writer modules. More...

#include <baseoutputmodule.hh>

Inheritance diagram for Ewoms::BaseOutputModule< TypeTag >:
Inheritance graph

Public Types

typedef
BaseOutputWriter::ScalarBuffer 
ScalarBuffer
 
typedef
BaseOutputWriter::VectorBuffer 
VectorBuffer
 
typedef
BaseOutputWriter::TensorBuffer 
TensorBuffer
 
typedef std::array
< ScalarBuffer, numEq > 
EqBuffer
 
typedef std::array
< ScalarBuffer, numPhases > 
PhaseBuffer
 
typedef std::array
< ScalarBuffer, numComponents > 
ComponentBuffer
 
typedef std::array< std::array
< ScalarBuffer, numComponents >
, numPhases > 
PhaseComponentBuffer
 
typedef std::array
< VectorBuffer, numPhases > 
PhaseVectorBuffer
 

Public Member Functions

 BaseOutputModule (const Simulator &simulator)
 
virtual ~BaseOutputModule ()
 
virtual void allocBuffers ()=0
 Allocate memory for the scalar fields we would like to write to disk. More...
 
virtual void processElement (const ElementContext &elemCtx)=0
 Modify the internal buffers according to the intensive quanties relevant for an element. More...
 
virtual void commitBuffers (BaseOutputWriter &writer)=0
 Add all buffers to the VTK output writer. More...
 

Protected Types

enum  BufferType { DofBuffer, VertexBuffer, ElementBuffer }
 

Protected Member Functions

void resizeScalarBuffer_ (ScalarBuffer &buffer, BufferType bufferType=DofBuffer)
 Allocate the space for a buffer storing a scalar quantity. More...
 
void resizeTensorBuffer_ (TensorBuffer &buffer, BufferType bufferType=DofBuffer)
 Allocate the space for a buffer storing a tensorial quantity. More...
 
void resizeEqBuffer_ (EqBuffer &buffer, BufferType bufferType=DofBuffer)
 Allocate the space for a buffer storing a equation specific quantity. More...
 
void resizePhaseBuffer_ (PhaseBuffer &buffer, BufferType bufferType=DofBuffer)
 Allocate the space for a buffer storing a phase-specific quantity. More...
 
void resizeComponentBuffer_ (ComponentBuffer &buffer, BufferType bufferType=DofBuffer)
 Allocate the space for a buffer storing a component specific quantity. More...
 
void resizePhaseComponentBuffer_ (PhaseComponentBuffer &buffer, BufferType bufferType=DofBuffer)
 Allocate the space for a buffer storing a phase and component specific buffer. More...
 
void commitScalarBuffer_ (BaseOutputWriter &baseWriter, const char *name, ScalarBuffer &buffer, BufferType bufferType=DofBuffer)
 Add a buffer containing scalar quantities to the result file. More...
 
void commitVectorBuffer_ (BaseOutputWriter &baseWriter, const char *name, VectorBuffer &buffer, BufferType bufferType=DofBuffer)
 Add a buffer containing vectorial quantities to the result file. More...
 
void commitTensorBuffer_ (BaseOutputWriter &baseWriter, const char *name, TensorBuffer &buffer, BufferType bufferType=DofBuffer)
 Add a buffer containing tensorial quantities to the result file. More...
 
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. More...
 
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. More...
 
void commitPhaseBuffer_ (BaseOutputWriter &baseWriter, const char *pattern, PhaseBuffer &buffer, BufferType bufferType=DofBuffer)
 Add a phase-specific buffer to the result file. More...
 
void commitComponentBuffer_ (BaseOutputWriter &baseWriter, const char *pattern, ComponentBuffer &buffer, BufferType bufferType=DofBuffer)
 Add a component-specific buffer to the result file. More...
 
void commitPhaseComponentBuffer_ (BaseOutputWriter &baseWriter, const char *pattern, PhaseComponentBuffer &buffer, BufferType bufferType=DofBuffer)
 Add a phase and component specific quantities to the output. More...
 
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)
 

Protected Attributes

const Simulatorsimulator_
 

Detailed Description

template<class TypeTag>
class Ewoms::BaseOutputModule< TypeTag >

The base class for writer modules.

This class also provides some convenience methods for buffer management and is the base class for all other output writer modules.

Member Typedef Documentation

template<class TypeTag>
typedef std::array<ScalarBuffer, numComponents> Ewoms::BaseOutputModule< TypeTag >::ComponentBuffer
template<class TypeTag>
typedef std::array<ScalarBuffer, numEq> Ewoms::BaseOutputModule< TypeTag >::EqBuffer
template<class TypeTag>
typedef std::array<ScalarBuffer, numPhases> Ewoms::BaseOutputModule< TypeTag >::PhaseBuffer
template<class TypeTag>
typedef std::array<std::array<ScalarBuffer, numComponents>, numPhases> Ewoms::BaseOutputModule< TypeTag >::PhaseComponentBuffer
template<class TypeTag>
typedef std::array<VectorBuffer, numPhases> Ewoms::BaseOutputModule< TypeTag >::PhaseVectorBuffer
template<class TypeTag>
typedef BaseOutputWriter::ScalarBuffer Ewoms::BaseOutputModule< TypeTag >::ScalarBuffer
template<class TypeTag>
typedef BaseOutputWriter::TensorBuffer Ewoms::BaseOutputModule< TypeTag >::TensorBuffer
template<class TypeTag>
typedef BaseOutputWriter::VectorBuffer Ewoms::BaseOutputModule< TypeTag >::VectorBuffer

Member Enumeration Documentation

template<class TypeTag>
enum Ewoms::BaseOutputModule::BufferType
protected
Enumerator
DofBuffer 

Buffer contains data associated with the degrees of freedom.

VertexBuffer 

Buffer contains data associated with the grid's vertices.

ElementBuffer 

Buffer contains data associated with the grid's elements.

Constructor & Destructor Documentation

template<class TypeTag>
Ewoms::BaseOutputModule< TypeTag >::BaseOutputModule ( const Simulator simulator)
inline
template<class TypeTag>
virtual Ewoms::BaseOutputModule< TypeTag >::~BaseOutputModule ( )
inlinevirtual

Member Function Documentation

template<class TypeTag>
virtual void Ewoms::BaseOutputModule< TypeTag >::allocBuffers ( )
pure virtual

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

The module can dynamically cast the writer to the desired concrete class. If the writer is incompatible with the module, this method should become a no-op.

Implemented in Ewoms::VtkMultiPhaseModule< TypeTag >, Ewoms::VtkDiscreteFractureModule< TypeTag >, Ewoms::VtkBlackOilModule< TypeTag >, Ewoms::VtkCompositionModule< TypeTag >, Ewoms::VtkEnergyModule< TypeTag >, Ewoms::VtkDiffusionModule< TypeTag >, Ewoms::VtkPrimaryVarsModule< TypeTag >, Ewoms::VtkTemperatureModule< TypeTag >, and Ewoms::VtkPhasePresenceModule< TypeTag >.

template<class TypeTag>
void Ewoms::BaseOutputModule< TypeTag >::attachTensorElementData_ ( BaseOutputWriter baseWriter,
TensorBuffer buffer,
const char *  name 
)
inlineprotected
template<class TypeTag>
void Ewoms::BaseOutputModule< TypeTag >::attachTensorVertexData_ ( BaseOutputWriter baseWriter,
TensorBuffer buffer,
const char *  name 
)
inlineprotected
template<class TypeTag>
void Ewoms::BaseOutputModule< TypeTag >::attachVectorElementData_ ( BaseOutputWriter baseWriter,
VectorBuffer buffer,
const char *  name 
)
inlineprotected
template<class TypeTag>
void Ewoms::BaseOutputModule< TypeTag >::attachVectorVertexData_ ( BaseOutputWriter baseWriter,
VectorBuffer buffer,
const char *  name 
)
inlineprotected
template<class TypeTag>
void Ewoms::BaseOutputModule< TypeTag >::commitEqBuffer_ ( BaseOutputWriter baseWriter,
const char *  pattern,
EqBuffer buffer,
BufferType  bufferType = DofBuffer 
)
inlineprotected
template<class TypeTag>
void Ewoms::BaseOutputModule< TypeTag >::commitVectorBuffer_ ( BaseOutputWriter baseWriter,
const char *  name,
VectorBuffer buffer,
BufferType  bufferType = DofBuffer 
)
inlineprotected
template<class TypeTag>
virtual void Ewoms::BaseOutputModule< TypeTag >::processElement ( const ElementContext &  elemCtx)
pure virtual

Modify the internal buffers according to the intensive quanties relevant for an element.

The module can dynamically cast the writer to the desired concrete class. If the writer is incompatible with the module, this method should become a no-op.

Implemented in Ewoms::VtkMultiPhaseModule< TypeTag >, Ewoms::VtkDiscreteFractureModule< TypeTag >, Ewoms::VtkCompositionModule< TypeTag >, Ewoms::VtkBlackOilModule< TypeTag >, Ewoms::VtkEnergyModule< TypeTag >, Ewoms::VtkDiffusionModule< TypeTag >, Ewoms::VtkPrimaryVarsModule< TypeTag >, Ewoms::VtkTemperatureModule< TypeTag >, and Ewoms::VtkPhasePresenceModule< TypeTag >.

Member Data Documentation


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