version 3.10-dev
Dumux::BoxDfmVtkOutputModule< GridVariables, SolutionVector, FractureGrid > Class Template Reference

A VTK output module to simplify writing dumux simulation data to VTK format. More...

#include <dumux/porousmediumflow/boxdfm/vtkoutputmodule.hh>

Inheritance diagram for Dumux::BoxDfmVtkOutputModule< GridVariables, SolutionVector, FractureGrid >:

Description

template<class GridVariables, class SolutionVector, class FractureGrid>
class Dumux::BoxDfmVtkOutputModule< GridVariables, SolutionVector, FractureGrid >

This output module is specialized for writing out data obtained by the box-dfm scheme. It writes out separate vtk files for the solution on the fracture. For this, a grid type to be used the fracture-conforming lower-dimensional grid has to be provided.

Template Parameters
TypeTagThe TypeTag of the problem implementation
FractureGridThe Type used for the lower-dimensional grid

Handles the output of scalar and vector fields to VTK formatted file for multiple variables and time steps. Certain predefined fields can be registered on initialization and/or be turned on/off using the designated properties. Additionally non-standardized scalar and vector fields can be added to the writer manually.

Public Types

using VolumeVariables = VV
 export type of the volume variables for the outputfields More...
 

Public Member Functions

template<class FractureGridAdapter >
 BoxDfmVtkOutputModule (const GridVariables &gridVariables, const SolutionVector &sol, const std::string &name, const FractureGridAdapter &fractureGridAdapter, const std::string &paramGroup="", Dune::VTK::DataMode dm=Dune::VTK::conforming, bool verbose=true)
 The constructor. More...
 
void write (double time, Dune::VTK::OutputType type=Dune::VTK::ascii)
 Writing data. More...
 
void addVelocityOutput (std::shared_ptr< VelocityOutputType > velocityOutput)
 Add a velocity output policy. More...
 
void addVolumeVariable (std::function< Scalar(const VolumeVariables &)> &&f, const std::string &name)
 
template<class VVV = VolVarsVector, typename std::enable_if_t<(VVV::dimension > 1), int > = 0>
void addVolumeVariable (std::function< VolVarsVector(const VolumeVariables &)> &&f, const std::string &name)
 
const std::string & paramGroup () const
 the parameter group for getting parameter from the parameter tree More...
 
void addField (const Vector &v, const std::string &name, Vtk::FieldType fieldType=Vtk::FieldType::automatic)
 Add a scalar or vector valued vtk field. More...
 
void addField (const Vector &v, const std::string &name, Dumux::Vtk::Precision precision, Vtk::FieldType fieldType=Vtk::FieldType::automatic)
 Add a scalar or vector valued vtk field. More...
 
void addField (Field &&field)
 Add a scalar or vector valued vtk field. More...
 

Protected Types

using VelocityOutput = VelocityOutputType
 

Protected Member Functions

const auto & problem () const
 
const GridVariables & gridVariables () const
 
const GridGeometry & gridGeometry () const
 
const SolutionVector & sol () const
 
const std::vector< VolVarScalarDataInfo > & volVarScalarDataInfo () const
 
const std::vector< VolVarVectorDataInfo > & volVarVectorDataInfo () const
 
const VelocityOutputvelocityOutput () const
 
bool verbose () const
 
const std::string & name () const
 
Dune::VTK::DataMode dataMode () const
 
Dumux::Vtk::Precision precision () const
 
Dune::VTKWriter< GridView > & writer ()
 
Dune::VTKSequenceWriter< GridView > & sequenceWriter ()
 
const std::vector< Field > & fields () const
 

Member Typedef Documentation

◆ VelocityOutput

template<class GridVariables , class SolutionVector >
using Dumux::VtkOutputModule< GridVariables, SolutionVector >::VelocityOutput = VelocityOutputType
protectedinherited

◆ VolumeVariables

template<class GridVariables , class SolutionVector >
using Dumux::VtkOutputModule< GridVariables, SolutionVector >::VolumeVariables = VV
inherited

Constructor & Destructor Documentation

◆ BoxDfmVtkOutputModule()

template<class GridVariables , class SolutionVector , class FractureGrid >
template<class FractureGridAdapter >
Dumux::BoxDfmVtkOutputModule< GridVariables, SolutionVector, FractureGrid >::BoxDfmVtkOutputModule ( const GridVariables &  gridVariables,
const SolutionVector &  sol,
const std::string &  name,
const FractureGridAdapter &  fractureGridAdapter,
const std::string &  paramGroup = "",
Dune::VTK::DataMode  dm = Dune::VTK::conforming,
bool  verbose = true 
)
inline

Member Function Documentation

◆ addField() [1/3]

void Dumux::VtkOutputModuleBase< GridVariables::GridGeometry >::addField ( const Vector &  v,
const std::string &  name,
Dumux::Vtk::Precision  precision,
Vtk::FieldType  fieldType = Vtk::FieldType::automatic 
)
inlineinherited
Parameters
vThe field to be added. Can be any indexable container. Its value type can be a number or itself an indexable container.
nameThe name of the field
fieldTypeThe type of the field. This determines whether the values are associated with vertices or elements. By default, the method automatically deduces the correct type for the given input.
precisionThe output precision of this field (see Dune::VTK::Precision)

◆ addField() [2/3]

void Dumux::VtkOutputModuleBase< GridVariables::GridGeometry >::addField ( const Vector &  v,
const std::string &  name,
Vtk::FieldType  fieldType = Vtk::FieldType::automatic 
)
inlineinherited
Parameters
vThe field to be added. Can be any indexable container. Its value type can be a number or itself an indexable container.
nameThe name of the field
fieldTypeThe type of the field. This determines whether the values are associated with vertices or elements. By default, the method automatically deduces the correct type for the given input.

◆ addField() [3/3]

void Dumux::VtkOutputModuleBase< GridVariables::GridGeometry >::addField ( Field &&  field)
inlineinherited
Parameters
fieldThe parameters passed on to the field constructor

◆ addVelocityOutput()

template<class GridVariables , class SolutionVector >
void Dumux::VtkOutputModule< GridVariables, SolutionVector >::addVelocityOutput ( std::shared_ptr< VelocityOutputType velocityOutput)
inlineinherited

Methods to conveniently add primary and secondary variables upon initialization Do not call these methods after initialization i.e. not within the time loop

Parameters
velocityOutputthe output policy
Note
the default policy does not add any velocity output

◆ addVolumeVariable() [1/2]

template<class GridVariables , class SolutionVector >
void Dumux::VtkOutputModule< GridVariables, SolutionVector >::addVolumeVariable ( std::function< Scalar(const VolumeVariables &)> &&  f,
const std::string &  name 
)
inlineinherited

Output a scalar volume variable

Parameters
nameThe name of the vtk field
fA function taking a VolumeVariables object and returning the desired scalar

◆ addVolumeVariable() [2/2]

template<class GridVariables , class SolutionVector >
template<class VVV = VolVarsVector, typename std::enable_if_t<(VVV::dimension > 1), int > = 0>
void Dumux::VtkOutputModule< GridVariables, SolutionVector >::addVolumeVariable ( std::function< VolVarsVector(const VolumeVariables &)> &&  f,
const std::string &  name 
)
inlineinherited

Add a vector-valued variable

Parameters
fA function taking a VolumeVariables object and returning the desired vector
nameThe name of the vtk field
Note
This method is only available for dimWorld > 1. For 1-D problems, the overload for volVar methods returning a Scalar will be used.

◆ dataMode()

Dune::VTK::DataMode Dumux::VtkOutputModuleBase< GridVariables::GridGeometry >::dataMode ( ) const
inlineprotectedinherited

◆ fields()

const std::vector< Field > & Dumux::VtkOutputModuleBase< GridVariables::GridGeometry >::fields ( ) const
inlineprotectedinherited

◆ gridGeometry()

template<class GridVariables , class SolutionVector >
const GridGeometry & Dumux::VtkOutputModule< GridVariables, SolutionVector >::gridGeometry ( ) const
inlineprotectedinherited

◆ gridVariables()

template<class GridVariables , class SolutionVector >
const GridVariables & Dumux::VtkOutputModule< GridVariables, SolutionVector >::gridVariables ( ) const
inlineprotectedinherited

◆ name()

const std::string & Dumux::VtkOutputModuleBase< GridVariables::GridGeometry >::name ( ) const
inlineprotectedinherited

◆ paramGroup()

const std::string & Dumux::VtkOutputModuleBase< GridVariables::GridGeometry >::paramGroup ( ) const
inlineinherited

◆ precision()

Dumux::Vtk::Precision Dumux::VtkOutputModuleBase< GridVariables::GridGeometry >::precision ( ) const
inlineprotectedinherited

◆ problem()

template<class GridVariables , class SolutionVector >
const auto & Dumux::VtkOutputModule< GridVariables, SolutionVector >::problem ( ) const
inlineprotectedinherited

◆ sequenceWriter()

Dune::VTKSequenceWriter< GridView > & Dumux::VtkOutputModuleBase< GridVariables::GridGeometry >::sequenceWriter ( )
inlineprotectedinherited

◆ sol()

template<class GridVariables , class SolutionVector >
const SolutionVector & Dumux::VtkOutputModule< GridVariables, SolutionVector >::sol ( ) const
inlineprotectedinherited

◆ velocityOutput()

template<class GridVariables , class SolutionVector >
const VelocityOutput & Dumux::VtkOutputModule< GridVariables, SolutionVector >::velocityOutput ( ) const
inlineprotectedinherited

◆ verbose()

bool Dumux::VtkOutputModuleBase< GridVariables::GridGeometry >::verbose ( ) const
inlineprotectedinherited

◆ volVarScalarDataInfo()

template<class GridVariables , class SolutionVector >
const std::vector< VolVarScalarDataInfo > & Dumux::VtkOutputModule< GridVariables, SolutionVector >::volVarScalarDataInfo ( ) const
inlineprotectedinherited

◆ volVarVectorDataInfo()

template<class GridVariables , class SolutionVector >
const std::vector< VolVarVectorDataInfo > & Dumux::VtkOutputModule< GridVariables, SolutionVector >::volVarVectorDataInfo ( ) const
inlineprotectedinherited

◆ write()

template<class GridVariables , class SolutionVector , class FractureGrid >
void Dumux::BoxDfmVtkOutputModule< GridVariables, SolutionVector, FractureGrid >::write ( double  time,
Dune::VTK::OutputType  type = Dune::VTK::ascii 
)
inline

Write the data for this timestep to file in four steps (1) We assemble all registered variable fields (2) We register them with the vtk writer (3) The writer writes the output for us (4) Clear the writer for the next time step

output

◆ writer()

Dune::VTKWriter< GridView > & Dumux::VtkOutputModuleBase< GridVariables::GridGeometry >::writer ( )
inlineprotectedinherited

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