Flow123d  jenkins-Flow123d-linux-release-multijob-282
Classes | Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
DarcyFlowMHOutput Class Reference

#include <darcy_flow_mh_output.hh>

Collaboration diagram for DarcyFlowMHOutput:
Collaboration graph
[legend]

Classes

class  OutputFields
 

Public Member Functions

 DarcyFlowMHOutput (DarcyFlowMH_Steady *flow, Input::Record in_rec)
 
 ~DarcyFlowMHOutput ()
 
void output ()
 Calculate values for output. More...
 
const OutputFieldsget_output_fields ()
 

Static Public Attributes

static Input::Type::Record input_type
 

Private Member Functions

void make_side_flux ()
 
void make_element_scalar ()
 
void make_element_vector ()
 
void make_sides_scalar ()
 
void make_node_scalar_param ()
 Calculate nodes scalar, store it in double* node_scalars instead of node->scalar. More...
 
void make_node_scalar ()
 
void make_corner_scalar (vector< double > &node_scalar)
 
void make_neighbour_flux ()
 
void output_internal_flow_data ()
 
void compute_l2_difference ()
 
void water_balance ()
 
double calc_water_balance ()
 

Private Attributes

DarcyFlowMH_Steadydarcy_flow
 
Meshmesh_
 
Input::Record in_rec_
 Accessor to the input record for the DarcyFlow output. More...
 
vector< double > corner_pressure
 
VectorSeqDouble ele_pressure
 
VectorSeqDouble ele_piezo_head
 
VectorSeqDouble ele_flux
 
std::vector< double > l2_diff_pressure
 
std::vector< double > l2_diff_velocity
 
std::vector< double > l2_diff_divergence
 
Vec vec_corner_pressure
 
DOFHandlerMultiDimdh
 
MappingP1< 1, 3 > map1
 
MappingP1< 2, 3 > map2
 
MappingP1< 3, 3 > map3
 
FE_P_disc< 1, 1, 3 > fe1
 
FE_P_disc< 1, 2, 3 > fe2
 
FE_P_disc< 1, 3, 3 > fe3
 
OutputFields output_fields
 
OutputTimeoutput_stream
 
FILE * balance_output_file
 Temporary solution for writing balance into separate file. More...
 
FILE * raw_output_file
 Raw data output file. More...
 

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 69 of file darcy_flow_mh_output.hh.

Constructor & Destructor Documentation

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

Definition at line 102 of file darcy_flow_mh_output.cc.

DarcyFlowMHOutput::~DarcyFlowMHOutput ( )

Definition at line 174 of file darcy_flow_mh_output.cc.

Member Function Documentation

double DarcyFlowMHOutput::calc_water_balance ( )
private
void DarcyFlowMHOutput::compute_l2_difference ( )
private

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 690 of file darcy_flow_mh_output.cc.

Here is the caller graph for this function:

const OutputFields& DarcyFlowMHOutput::get_output_fields ( )
inline

Definition at line 105 of file darcy_flow_mh_output.hh.

Here is the caller graph for this function:

void DarcyFlowMHOutput::make_corner_scalar ( vector< double > &  node_scalar)
private

Definition at line 272 of file darcy_flow_mh_output.cc.

Here is the caller graph for this function:

void DarcyFlowMHOutput::make_element_scalar ( )
private

Definition at line 223 of file darcy_flow_mh_output.cc.

Here is the caller graph for this function:

void DarcyFlowMHOutput::make_element_vector ( )
private

Definition at line 243 of file darcy_flow_mh_output.cc.

Here is the caller graph for this function:

void DarcyFlowMHOutput::make_neighbour_flux ( )
private
void DarcyFlowMHOutput::make_node_scalar ( )
private
void DarcyFlowMHOutput::make_node_scalar_param ( )
private

Calculate nodes scalar, store it in double* node_scalars instead of node->scalar.

< tmp variable for storing particular distance node –> element, node –> side*/

Iterators

< number of nodes in the mesh */

< index of each node */

< sum elements joined to node */

< sum sides joined to node */

< sum distances to all joined elements */

< Sum distances to all joined sides */

tmp variables, will be replaced by ini keys TODO include them into ini file

< scalar is counted via elements*/

< scalar is counted via sides */

init arrays

first pass - calculate sums (weights)

< get Node pointer from element */

< get nod index from mesh */

< get Node pointer from element */

< get nod index from mesh */

second pass - calculate scalar

< get Node pointer from element */

< get nod index from mesh */

TODO - calculate it again or store it in prior pass

< get Node pointer from element */

< get nod index from mesh */

TODO - calculate it again or store it in prior pass

free memory

Definition at line 302 of file darcy_flow_mh_output.cc.

Here is the caller graph for this function:

void DarcyFlowMHOutput::make_side_flux ( )
private
void DarcyFlowMHOutput::make_sides_scalar ( )
private
void DarcyFlowMHOutput::output ( )

Calculate values for output.

Definition at line 193 of file darcy_flow_mh_output.cc.

Here is the caller graph for this function:

void DarcyFlowMHOutput::output_internal_flow_data ( )
private

Definition at line 520 of file darcy_flow_mh_output.cc.

Here is the caller graph for this function:

void DarcyFlowMHOutput::water_balance ( )
private

Calculate and output water balance over material subdomains and boudary fluxes. Works only for steady flow.

TODO:

  • fix it also for unsteady flow
  • create separate class for this caculations and output
  • create class for output of tables with support to output into various file formats like GNUplot of excel/open calc

Definition at line 422 of file darcy_flow_mh_output.cc.

Member Data Documentation

FILE* DarcyFlowMHOutput::balance_output_file
private

Temporary solution for writing balance into separate file.

Definition at line 188 of file darcy_flow_mh_output.hh.

vector<double> DarcyFlowMHOutput::corner_pressure
private

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

Definition at line 160 of file darcy_flow_mh_output.hh.

DarcyFlowMH_Steady* DarcyFlowMHOutput::darcy_flow
private

Definition at line 152 of file darcy_flow_mh_output.hh.

DOFHandlerMultiDim* DarcyFlowMHOutput::dh
private

Definition at line 175 of file darcy_flow_mh_output.hh.

VectorSeqDouble DarcyFlowMHOutput::ele_flux
private

Average flux in barycenter of every element. Indexed as elements in the mesh.

Definition at line 169 of file darcy_flow_mh_output.hh.

VectorSeqDouble DarcyFlowMHOutput::ele_piezo_head
private

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 164 of file darcy_flow_mh_output.hh.

VectorSeqDouble DarcyFlowMHOutput::ele_pressure
private

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 162 of file darcy_flow_mh_output.hh.

FE_P_disc<1,1,3> DarcyFlowMHOutput::fe1
private

Definition at line 179 of file darcy_flow_mh_output.hh.

FE_P_disc<1,2,3> DarcyFlowMHOutput::fe2
private

Definition at line 180 of file darcy_flow_mh_output.hh.

FE_P_disc<1,3,3> DarcyFlowMHOutput::fe3
private

Definition at line 181 of file darcy_flow_mh_output.hh.

Input::Record DarcyFlowMHOutput::in_rec_
private

Accessor to the input record for the DarcyFlow output.

Definition at line 156 of file darcy_flow_mh_output.hh.

it::Record DarcyFlowMHOutput::input_type
static
Initial value:
= it::Record("DarcyMHOutput", "Parameters of MH output.")
"Parameters of output stream.")
it::Default::obligatory(), "List of fields to write to output file.")
.declare_key("compute_errors", it::Bool(), it::Default("false"),
"SPECIAL PURPOSE. Computing errors pro non-compatible coupling.")
"Output file with raw data form MH module.")

Definition at line 99 of file darcy_flow_mh_output.hh.

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

Definition at line 172 of file darcy_flow_mh_output.hh.

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

Definition at line 172 of file darcy_flow_mh_output.hh.

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

Definition at line 172 of file darcy_flow_mh_output.hh.

MappingP1<1,3> DarcyFlowMHOutput::map1
private

Definition at line 176 of file darcy_flow_mh_output.hh.

MappingP1<2,3> DarcyFlowMHOutput::map2
private

Definition at line 177 of file darcy_flow_mh_output.hh.

MappingP1<3,3> DarcyFlowMHOutput::map3
private

Definition at line 178 of file darcy_flow_mh_output.hh.

Mesh* DarcyFlowMHOutput::mesh_
private

Definition at line 153 of file darcy_flow_mh_output.hh.

OutputFields DarcyFlowMHOutput::output_fields
private

Definition at line 183 of file darcy_flow_mh_output.hh.

OutputTime* DarcyFlowMHOutput::output_stream
private

Definition at line 185 of file darcy_flow_mh_output.hh.

FILE* DarcyFlowMHOutput::raw_output_file
private

Raw data output file.

Definition at line 190 of file darcy_flow_mh_output.hh.

Vec DarcyFlowMHOutput::vec_corner_pressure
private

Definition at line 174 of file darcy_flow_mh_output.hh.


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