Flow123d  JS_before_hm-984-g3a19f2f
Classes | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
DarcyFlowMHOutput Class Reference

#include <darcy_flow_mh_output.hh>

Collaboration diagram for DarcyFlowMHOutput:
Collaboration graph
[legend]

Classes

struct  DiffData
 
struct  FEData
 
class  OutputFields
 Standard quantities for output in DarcyFlowMH. More...
 
class  OutputSpecificFields
 Specific quantities for output in DarcyFlowMH - error estimates etc. More...
 

Public Member Functions

 DarcyFlowMHOutput (DarcyFlowInterface *flow, Input::Record in_rec)
 
virtual ~DarcyFlowMHOutput ()
 
void output ()
 Calculate values for output. More...
 

Static Public Member Functions

static const Input::Type::Instanceget_input_type (FieldSet &eq_data, const std::string &equation_name)
 
static const Input::Type::Instanceget_input_type_specific ()
 

Protected Types

typedef const vector< unsigned int > & ElementSetRef
 

Protected Member Functions

virtual void prepare_output (Input::Record in_rec)
 
virtual void prepare_specific_output (Input::Record in_rec)
 
void output_internal_flow_data ()
 
void compute_l2_difference ()
 
void l2_diff_local (DHCellAccessor dh_cell, FEValues< 3 > &fe_values, FEValues< 3 > &fv_rt, FieldPython< 3, FieldValue< 3 >::Vector > &anal_sol, DiffData &result)
 Computes L2 error on an element. More...
 

Protected Attributes

DarcyFlowInterfacedarcy_flow
 
Meshmesh_
 
bool compute_errors_
 Specific experimental error computing. More...
 
VectorMPI corner_pressure
 
VectorMPI ele_pressure
 
VectorMPI ele_piezo_head
 
std::vector< double > l2_diff_pressure
 
std::vector< double > l2_diff_velocity
 
std::vector< double > l2_diff_divergence
 
std::shared_ptr< DOFHandlerMultiDimdh_
 
std::shared_ptr< DiscreteSpaceds
 
OutputFields output_fields
 
OutputSpecificFields output_specific_fields
 
std::shared_ptr< OutputTimeoutput_stream
 
ofstream raw_output_file
 Raw data output file. More...
 
bool is_output_specific_fields
 Output specific field stuff. More...
 
struct DarcyFlowMHOutput::DiffData diff_data
 
FEData fe_data
 

Detailed Description

Actually this class only collect former code from postprocess.* This code depends on values stored in mesh and has to be changed to use fields or other data provided by interface to darcy_flow. We have to relay on the interface in order to allow different implementation of darcy_flow.

Principal functionalities of current postprocess are:

Further functionality of this class should be:

Definition at line 74 of file darcy_flow_mh_output.hh.

Member Typedef Documentation

typedef const vector<unsigned int>& DarcyFlowMHOutput::ElementSetRef
protected

Definition at line 111 of file darcy_flow_mh_output.hh.

Constructor & Destructor Documentation

DarcyFlowMHOutput::DarcyFlowMHOutput ( DarcyFlowInterface flow,
Input::Record  in_rec 
)

Definition at line 127 of file darcy_flow_mh_output.cc.

DarcyFlowMHOutput::~DarcyFlowMHOutput ( )
virtual

Definition at line 230 of file darcy_flow_mh_output.cc.

Member Function Documentation

void DarcyFlowMHOutput::compute_l2_difference ( )
protected

Temporary hack. Calculate approximation of L2 norm for: 1) difference between regularized pressure and analytical solution (using FunctionPython) 2) difference between RT velocities and analytical solution 3) difference of divergence

TODO: 1) implement field objects 2) implement DG_P2 finite elements 3) implement pressure postprocessing (result is DG_P2 field) 4) implement calculation of L2 norm for two field (compute the norm and values on individual elements as P0 field)

Definition at line 487 of file darcy_flow_mh_output.cc.

Here is the caller graph for this function:

const it::Instance & DarcyFlowMHOutput::get_input_type ( FieldSet eq_data,
const std::string &  equation_name 
)
static

Definition at line 62 of file darcy_flow_mh_output.cc.

Here is the caller graph for this function:

const it::Instance & DarcyFlowMHOutput::get_input_type_specific ( )
static

Definition at line 69 of file darcy_flow_mh_output.cc.

Here is the caller graph for this function:

void DarcyFlowMHOutput::l2_diff_local ( DHCellAccessor  dh_cell,
FEValues< 3 > &  fe_values,
FEValues< 3 > &  fv_rt,
FieldPython< 3, FieldValue< 3 >::Vector > &  anal_sol,
DiffData result 
)
protected

Computes L2 error on an element.

Definition at line 361 of file darcy_flow_mh_output.cc.

Here is the caller graph for this function:

void DarcyFlowMHOutput::output ( )

Calculate values for output.

Definition at line 242 of file darcy_flow_mh_output.cc.

Here is the caller graph for this function:

void DarcyFlowMHOutput::output_internal_flow_data ( )
protected

Definition at line 286 of file darcy_flow_mh_output.cc.

Here is the caller graph for this function:

void DarcyFlowMHOutput::prepare_output ( Input::Record  in_rec)
protectedvirtual

Definition at line 177 of file darcy_flow_mh_output.cc.

Here is the caller graph for this function:

void DarcyFlowMHOutput::prepare_specific_output ( Input::Record  in_rec)
protectedvirtual

Definition at line 191 of file darcy_flow_mh_output.cc.

Here is the caller graph for this function:

Member Data Documentation

bool DarcyFlowMHOutput::compute_errors_
protected

Specific experimental error computing.

Definition at line 138 of file darcy_flow_mh_output.hh.

VectorMPI DarcyFlowMHOutput::corner_pressure
protected

Pressure head (in [m]) interpolated into nodes. Provides P1 approximation. Indexed by element-node numbering.

Definition at line 142 of file darcy_flow_mh_output.hh.

DarcyFlowInterface* DarcyFlowMHOutput::darcy_flow
protected

Definition at line 134 of file darcy_flow_mh_output.hh.

std::shared_ptr<DOFHandlerMultiDim> DarcyFlowMHOutput::dh_
protected

Definition at line 151 of file darcy_flow_mh_output.hh.

struct DarcyFlowMHOutput::DiffData DarcyFlowMHOutput::diff_data
protected
std::shared_ptr<DiscreteSpace> DarcyFlowMHOutput::ds
protected

Definition at line 152 of file darcy_flow_mh_output.hh.

VectorMPI DarcyFlowMHOutput::ele_piezo_head
protected

Piezo-metric head (in [m]) in barycenter of elements (or equivalently mean pressure over every element). Indexed by element indexes in the mesh.

Definition at line 146 of file darcy_flow_mh_output.hh.

VectorMPI DarcyFlowMHOutput::ele_pressure
protected

Pressure head (in [m]) in barycenters of elements (or equivalently mean pressure over every element). Indexed by element indexes in the mesh.

Definition at line 144 of file darcy_flow_mh_output.hh.

FEData DarcyFlowMHOutput::fe_data
protected

Definition at line 201 of file darcy_flow_mh_output.hh.

bool DarcyFlowMHOutput::is_output_specific_fields
protected

Output specific field stuff.

Definition at line 163 of file darcy_flow_mh_output.hh.

std::vector<double> DarcyFlowMHOutput::l2_diff_divergence
protected

Definition at line 149 of file darcy_flow_mh_output.hh.

std::vector<double> DarcyFlowMHOutput::l2_diff_pressure
protected

Definition at line 149 of file darcy_flow_mh_output.hh.

std::vector<double> DarcyFlowMHOutput::l2_diff_velocity
protected

Definition at line 149 of file darcy_flow_mh_output.hh.

Mesh* DarcyFlowMHOutput::mesh_
protected

Definition at line 135 of file darcy_flow_mh_output.hh.

OutputFields DarcyFlowMHOutput::output_fields
protected

Definition at line 154 of file darcy_flow_mh_output.hh.

OutputSpecificFields DarcyFlowMHOutput::output_specific_fields
protected

Definition at line 155 of file darcy_flow_mh_output.hh.

std::shared_ptr<OutputTime> DarcyFlowMHOutput::output_stream
protected

Definition at line 157 of file darcy_flow_mh_output.hh.

ofstream DarcyFlowMHOutput::raw_output_file
protected

Raw data output file.

Definition at line 160 of file darcy_flow_mh_output.hh.


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