Flow123d
release_2.2.0-41-g0958a8d
|
#include <darcy_flow_mh_output.hh>
Classes | |
class | OutputFields |
Public Member Functions | |
DarcyFlowMHOutput (DarcyMH *flow, Input::Record in_rec) | |
~DarcyFlowMHOutput () | |
void | output () |
Calculate values for output. More... | |
Static Public Member Functions | |
static const Input::Type::Instance & | get_input_type () |
static const Input::Type::Record & | get_input_type_specific () |
Private Types | |
typedef const vector< unsigned int > & | ElementSetRef |
Private Member Functions | |
void | make_side_flux () |
void | make_element_scalar (ElementSetRef element_indices) |
void | make_element_vector (ElementSetRef element_indices) |
void | make_node_scalar_param (ElementSetRef element_indices) |
Calculate nodes scalar, store it in double* node_scalars instead of node->scalar. More... | |
void | make_corner_scalar (vector< double > &node_scalar) |
void | output_internal_flow_data () |
void | compute_l2_difference () |
Private Attributes | |
DarcyMH * | darcy_flow |
Mesh * | mesh_ |
bool | compute_errors_ |
Specific experimental error computing. More... | |
vector< double > | corner_pressure |
VectorSeqDouble | ele_pressure |
VectorSeqDouble | ele_piezo_head |
VectorSeqDouble | ele_flux |
std::vector< unsigned int > | all_element_idx_ |
std::vector< double > | l2_diff_pressure |
std::vector< double > | l2_diff_velocity |
std::vector< double > | l2_diff_divergence |
Vec | vec_corner_pressure |
DOFHandlerMultiDim * | dh |
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 |
std::shared_ptr< OutputTime > | output_stream |
ofstream | raw_output_file |
Raw data output file. More... | |
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 57 of file darcy_flow_mh_output.hh.
|
private |
Definition at line 93 of file darcy_flow_mh_output.hh.
DarcyFlowMHOutput::DarcyFlowMHOutput | ( | DarcyMH * | flow, |
Input::Record | in_rec | ||
) |
Definition at line 108 of file darcy_flow_mh_output.cc.
DarcyFlowMHOutput::~DarcyFlowMHOutput | ( | ) |
Definition at line 177 of file darcy_flow_mh_output.cc.
|
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 668 of file darcy_flow_mh_output.cc.
|
static |
|
static |
|
private |
|
private |
|
private |
Computes fluxes at the barycenters of elements. TODO: We use FEValues to get fluxes at the barycenters of elements, but we still use MHDofHandler. Once we are able to make output routines parallel, we can use simply FieldFE for velocity here.
Definition at line 268 of file darcy_flow_mh_output.cc.
|
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 317 of file darcy_flow_mh_output.cc.
|
private |
void DarcyFlowMHOutput::output | ( | ) |
Calculate values for output.
Definition at line 194 of file darcy_flow_mh_output.cc.
|
private |
|
private |
Definition at line 153 of file darcy_flow_mh_output.hh.
|
private |
Specific experimental error computing.
Definition at line 137 of file darcy_flow_mh_output.hh.
|
private |
Pressure head (in [m]) interpolated into nodes. Provides P1 approximation. Indexed by element-node numbering.
Definition at line 141 of file darcy_flow_mh_output.hh.
|
private |
Definition at line 133 of file darcy_flow_mh_output.hh.
|
private |
Definition at line 159 of file darcy_flow_mh_output.hh.
|
private |
Average flux in barycenter of every element. Indexed as elements in the mesh.
Definition at line 150 of file darcy_flow_mh_output.hh.
|
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 145 of file darcy_flow_mh_output.hh.
|
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 143 of file darcy_flow_mh_output.hh.
|
private |
Definition at line 163 of file darcy_flow_mh_output.hh.
|
private |
Definition at line 164 of file darcy_flow_mh_output.hh.
|
private |
Definition at line 165 of file darcy_flow_mh_output.hh.
|
private |
Definition at line 156 of file darcy_flow_mh_output.hh.
|
private |
Definition at line 156 of file darcy_flow_mh_output.hh.
|
private |
Definition at line 156 of file darcy_flow_mh_output.hh.
|
private |
Definition at line 160 of file darcy_flow_mh_output.hh.
|
private |
Definition at line 161 of file darcy_flow_mh_output.hh.
|
private |
Definition at line 162 of file darcy_flow_mh_output.hh.
|
private |
Definition at line 134 of file darcy_flow_mh_output.hh.
|
private |
Definition at line 167 of file darcy_flow_mh_output.hh.
|
private |
Definition at line 169 of file darcy_flow_mh_output.hh.
|
private |
Raw data output file.
Definition at line 172 of file darcy_flow_mh_output.hh.
|
private |
Definition at line 158 of file darcy_flow_mh_output.hh.