27 #ifndef EWOMS_VTK_PRIMARY_VARS_MODULE_HH 28 #define EWOMS_VTK_PRIMARY_VARS_MODULE_HH 37 namespace Properties {
59 template<
class TypeTag>
65 typedef typename GET_PROP_TYPE(TypeTag, ElementContext) ElementContext;
66 typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
68 static const int vtkFormat =
GET_PROP_VALUE(TypeTag, VtkOutputFormat);
71 typedef typename ParentType::ScalarBuffer ScalarBuffer;
72 typedef typename ParentType::EqBuffer EqBuffer;
87 "Include the primary variables into the VTK output files");
89 "Include the MPI process rank into the VTK output files");
91 "Include the index of the degrees of freedom into the VTK output files");
100 if (primaryVarsOutput_())
102 if (processRankOutput_())
105 if (dofIndexOutput_())
118 const auto& elementMapper = elemCtx.model().elementMapper();
119 unsigned elemIdx =
static_cast<unsigned>(elementMapper.index(elemCtx.element()));
120 if (processRankOutput_() && !processRank_.empty())
121 processRank_[elemIdx] = static_cast<unsigned>(this->simulator_.
gridView().comm().rank());
123 for (
unsigned i = 0; i < elemCtx.numPrimaryDof(0); ++i) {
124 unsigned I = elemCtx.globalSpaceIndex(i, 0);
125 const auto& priVars = elemCtx.primaryVars(i, 0);
127 if (dofIndexOutput_())
130 for (
unsigned eqIdx = 0; eqIdx < numEq; ++eqIdx) {
131 if (primaryVarsOutput_() && !primaryVars_[eqIdx].empty())
132 primaryVars_[eqIdx][I] = priVars[eqIdx];
147 if (primaryVarsOutput_())
149 if (processRankOutput_())
154 if (dofIndexOutput_())
159 static bool primaryVarsOutput_()
161 static bool processRankOutput_()
163 static bool dofIndexOutput_()
166 EqBuffer primaryVars_;
167 ScalarBuffer processRank_;
168 ScalarBuffer dofIndex_;
void commitBuffers(BaseOutputWriter &baseWriter)
Add all buffers to the VTK output writer.
Definition: vtkprimaryvarsmodule.hh:140
The base class for all output writers.
Definition: baseoutputwriter.hh:43
#define SET_BOOL_PROP(EffTypeTagName, PropTagName,...)
Set a property to a simple constant boolean value.
Definition: propertysystem.hh:361
Definition: baseauxiliarymodule.hh:37
Simplifies writing multi-file VTK datasets.
Definition: vtkmultiwriter.hh:63
void commitScalarBuffer_(BaseOutputWriter &baseWriter, const char *name, ScalarBuffer &buffer, BufferType bufferType=DofBuffer)
Add a buffer containing scalar quantities to the result file.
Definition: baseoutputmodule.hh:305
#define GET_PROP_VALUE(TypeTag, PropTagName)
Access the value attribute of a property for a type tag.
Definition: propertysystem.hh:469
The base class for writer modules.
#define NEW_TYPE_TAG(...)
Define a new type tag.
Definition: propertysystem.hh:169
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.
Definition: baseoutputmodule.hh:359
Buffer contains data associated with the grid's elements.
Definition: baseoutputmodule.hh:164
#define EWOMS_REGISTER_PARAM(TypeTag, ParamType, ParamName, Description)
Register a run-time parameter.
Definition: parametersystem.hh:68
void resizeEqBuffer_(EqBuffer &buffer, BufferType bufferType=DofBuffer)
Allocate the space for a buffer storing a equation specific quantity.
Definition: baseoutputmodule.hh:212
This file provides the infrastructure to retrieve run-time parameters.
The base class for writer modules.
Definition: baseoutputmodule.hh:80
const GridView & gridView() const
Return the grid view for which the simulation is done.
Definition: simulator.hh:183
#define EWOMS_GET_PARAM(TypeTag, ParamType, ParamName)
Retrieve a runtime parameter.
Definition: parametersystem.hh:99
Provides the magic behind the eWoms property system.
void resizeScalarBuffer_(ScalarBuffer &buffer, BufferType bufferType=DofBuffer)
Allocate the space for a buffer storing a scalar quantity.
Definition: baseoutputmodule.hh:170
Simplifies writing multi-file VTK datasets.
VTK output module for the fluid composition.
Definition: vtkprimaryvarsmodule.hh:60
void processElement(const ElementContext &elemCtx)
Modify the internal buffers according to the intensive quantities relevant for an element...
Definition: vtkprimaryvarsmodule.hh:113
static void registerParameters()
Register all run-time parameters for the Vtk output module.
Definition: vtkprimaryvarsmodule.hh:84
Manages the initializing and running of time dependent problems.
Definition: simulator.hh:75
#define NEW_PROP_TAG(PTagName)
Define a property tag.
Definition: propertysystem.hh:247
void allocBuffers()
Allocate memory for the scalar fields we would like to write to the VTK file.
Definition: vtkprimaryvarsmodule.hh:98