Skip to content

Commit

Permalink
Merge pull request #13583 from bangerth/doc
Browse files Browse the repository at this point in the history
Minor updates to DataOutFilter.
  • Loading branch information
kronbichler committed Apr 5, 2022
2 parents 126027d + 3c62f3f commit ef1034f
Showing 1 changed file with 20 additions and 9 deletions.
29 changes: 20 additions & 9 deletions include/deal.II/base/data_out_base.h
Original file line number Diff line number Diff line change
Expand Up @@ -1283,14 +1283,15 @@ namespace DataOutBase
};

/**
* Flags controlling the DataOutFilter.
* Flags controlling the behavior of the DataOutFilter class.
*
* @ingroup output
*/
struct DataOutFilterFlags
{
/**
* Filter duplicate vertices and associated values. This will drastically
* Whether or not to filter out duplicate vertices and associated values.
* Setting this value to `true` will drastically
* reduce the output data size but will result in an output file that
* does not faithfully represent the actual data if the data corresponds
* to discontinuous fields. In particular, along subdomain boundaries
Expand Down Expand Up @@ -1338,23 +1339,33 @@ namespace DataOutBase
/**
* DataOutFilter provides a way to remove redundant vertices and values
* generated by the deal.II output. By default, DataOutBase and the classes
* that build on it output data at each corner of each cell. This means that
* data is output multiple times for each vertex of the mesh. The purpose of
* that build on it output data at each vertex of each cell. This means that
* data is output multiple times for each vertex of the mesh, once for each
* cell adjacent to the vertex. The purpose of
* this scheme is to support output of discontinuous quantities, either
* because the finite element space is discontinuous or because the quantity
* that is output is computed from a solution field and is discontinuous
* across faces.
* across faces (for example for quantities computed via DataPostprocessor;
* typical cases where output quantities are discontinuous are when a
* postprocessor computes a quantity using the *gradient* of the solution,
* which is generally discontinuous even if the element itself is
* continuous). Other cases where the output is discontinuous are if the
* data to be output is not a finite element field but, for example,
* results from a class such as MatrixOut.
*
* This class is an attempt to rein in the amount of data that is written.
* If the fields that are written to files are indeed discontinuous, the
* only way to faithfully represent them is indeed to write multiple values
* for each vertex (this is typically done by writing multiple node
* locations for the same vertex and defining data at these nodes). However,
* for each vertex (this is typically done by creating multiple logical nodes
* in the output file, all of which have the same physical location; data is
* then associated to nodes, allowing to have multiple values associated
* with the same location). However,
* for fine meshes, one may not necessarily be interested in an exact
* representation of output fields that will likely only have small
* discontinuities. Rather, it may be sufficient to just output one value
* per vertex, which may be chosen arbitrarily from among those that are
* defined at this vertex from any of the adjacent cells.
* defined at this vertex, i.e., chosen arbitrarily from any of the
* adjacent cells.
*/
class DataOutFilter
{
Expand All @@ -1365,7 +1376,7 @@ namespace DataOutBase
DataOutFilter();

/**
* Destructor with a given set of flags. See DataOutFilterFlags for
* Constructor with a given set of flags. See DataOutFilterFlags for
* possible flags.
*/
DataOutFilter(const DataOutBase::DataOutFilterFlags &flags);
Expand Down

0 comments on commit ef1034f

Please sign in to comment.