Flow123d  DF_patch_fe_darcy_complete-579fe1e
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Friends | List of all members
L2DifferenceAssembly< dim, TEqData > Class Template Reference

#include <assembly_flow_output.hh>

Inheritance diagram for L2DifferenceAssembly< dim, TEqData >:
Inheritance graph
[legend]
Collaboration diagram for L2DifferenceAssembly< dim, TEqData >:
Collaboration graph
[legend]

Public Types

typedef TEqData::EqFields EqFields
 
typedef TEqData EqData
 

Public Member Functions

 L2DifferenceAssembly (EqData *eq_data, AssemblyInternals *asm_internals)
 Constructor. More...
 
virtual ~L2DifferenceAssembly ()
 Destructor. More...
 
void initialize ()
 Initialize auxiliary vectors and other data members. More...
 
void cell_integral (DHCellAccessor cell, unsigned int element_patch_idx)
 Assemble integral over element. More...
 
void begin () override
 Implements AssemblyBase::begin. More...
 
void end () override
 Implements AssemblyBase::end. More...
 
- Public Member Functions inherited from AssemblyBasePatch< dim >
 AssemblyBasePatch (unsigned int quad_order, AssemblyInternals *asm_internals)
 
unsigned int n_dofs ()
 Return number of DOFs. More...
 
unsigned int n_dofs_high ()
 Return number of DOFs of higher dim element. More...
 
- Public Member Functions inherited from AssemblyBase< dim >
 AssemblyBase (unsigned int quad_order, AssemblyInternals *asm_internals)
 
virtual ~AssemblyBase ()
 Destructor. More...
 
virtual void cell_integral (FMT_UNUSED DHCellAccessor cell, FMT_UNUSED unsigned int element_patch_idx)
 
virtual void boundary_side_integral (FMT_UNUSED DHCellSide cell_side)
 
virtual void edge_integral (FMT_UNUSED RangeConvert< DHEdgeSide, DHCellSide > edge_side_range)
 
virtual void dimjoin_intergral (FMT_UNUSED DHCellAccessor cell_lower_dim, FMT_UNUSED DHCellSide neighb_side)
 
std::shared_ptr< BulkIntegralAcc< dim > > create_bulk_integral (Quadrature *quad)
 
std::shared_ptr< EdgeIntegralAcc< dim > > create_edge_integral (Quadrature *quad)
 
std::shared_ptr< CouplingIntegralAcc< dim > > create_coupling_integral (Quadrature *quad)
 
std::shared_ptr< BoundaryIntegralAcc< dim > > create_boundary_integral (Quadrature *quad)
 
bool add_integrals_of_computing_step (DHCellAccessor cell)
 
virtual void assemble_cell_integrals ()
 
void assemble_boundary_side_integrals ()
 
void assemble_edge_integrals ()
 
void assemble_neighbour_integrals ()
 
void set_min_edge_sides (unsigned int val)
 Setter of min_edge_sides_. More...
 
void clean_integral_data ()
 
const DimIntegrals< dim > & integrals () const
 Getter of integrals_. More...
 
const IntegralDataintegral_data () const
 Getter of integral_data_. More...
 

Static Public Member Functions

static constexpr const char * name ()
 

Protected Attributes

FieldSet used_fields_
 Sub field set contains fields used in calculation. More...
 
EqFieldseq_fields_
 Data objects shared with Flow equation. More...
 
EqDataeq_data_
 
std::vector< double > fluxes_
 Precomputed fluxes on element sides. More...
 
arma::vec3 flux_in_q_point_
 Precomputed flux in quadrature point. More...
 
arma::vec3 q_point_
 Local coords of quadrature point. More...
 
arma::vec3 ref_flux_
 Field result. More...
 
double ref_pressure_
 
double ref_divergence_
 
double conductivity_
 
double cross_
 Field results. More...
 
std::shared_ptr< BulkIntegralAcc< dim > > output_integral_
 Integral accessor of assembly class. More...
 
FeQ< ScalarJxW_
 Following data members represent Element quantities and FE quantities. More...
 
FeQ< Vectorpt_coords_
 
FeQArray< Vectorvec_shape_rt_
 
- Protected Attributes inherited from AssemblyBase< dim >
Quadraturequad_
 Quadrature used in assembling methods. More...
 
Quadraturequad_low_
 Quadrature used in assembling methods (dim-1). More...
 
DimIntegrals< dim > integrals_
 Set of used integrals. More...
 
AssemblyInternalsasm_internals_
 Holds shared internals data with GeneriAssembly. More...
 
unsigned int min_edge_sides_
 
IntegralData integral_data_
 Holds patch data for computing different types of integrals. More...
 

Friends

template<template< IntDim... > class DimAssembly>
class GenericAssembly
 

Additional Inherited Members

- Protected Member Functions inherited from AssemblyBase< dim >
 AssemblyBase ()
 
void add_volume_integrals (const DHCellAccessor &cell)
 
void add_edge_integrals (const DHCellSide &cell_side)
 
void add_boundary_integrals (const DHCellSide &bdr_side)
 
void add_coupling_integrals (const DHCellAccessor &cell)
 
template<template< unsigned int > class IntegralAcc>
void add_side_points (std::shared_ptr< IntegralAcc< dim > > &integral, DHCellSide cell_side, PatchPointValues< 3 > &ppv)
 
std::string print_update_flags (UpdateFlags u) const
 Print update flags to string format. More...
 

Detailed Description

template<unsigned int dim, class TEqData>
class L2DifferenceAssembly< dim, TEqData >

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 52 of file assembly_flow_output.hh.

Member Typedef Documentation

◆ EqData

template<unsigned int dim, class TEqData >
typedef TEqData L2DifferenceAssembly< dim, TEqData >::EqData

Definition at line 56 of file assembly_flow_output.hh.

◆ EqFields

template<unsigned int dim, class TEqData >
typedef TEqData::EqFields L2DifferenceAssembly< dim, TEqData >::EqFields

Definition at line 55 of file assembly_flow_output.hh.

Constructor & Destructor Documentation

◆ L2DifferenceAssembly()

template<unsigned int dim, class TEqData >
L2DifferenceAssembly< dim, TEqData >::L2DifferenceAssembly ( EqData eq_data,
AssemblyInternals asm_internals 
)
inline

Constructor.

Definition at line 61 of file assembly_flow_output.hh.

◆ ~L2DifferenceAssembly()

template<unsigned int dim, class TEqData >
virtual L2DifferenceAssembly< dim, TEqData >::~L2DifferenceAssembly ( )
inlinevirtual

Destructor.

Definition at line 75 of file assembly_flow_output.hh.

Member Function Documentation

◆ begin()

template<unsigned int dim, class TEqData >
void L2DifferenceAssembly< dim, TEqData >::begin ( )
inlineoverridevirtual

Implements AssemblyBase::begin.

Reimplemented from AssemblyBase< dim >.

Definition at line 177 of file assembly_flow_output.hh.

◆ cell_integral()

template<unsigned int dim, class TEqData >
void L2DifferenceAssembly< dim, TEqData >::cell_integral ( DHCellAccessor  cell,
unsigned int  element_patch_idx 
)
inline

Assemble integral over element.

Definition at line 84 of file assembly_flow_output.hh.

◆ end()

template<unsigned int dim, class TEqData >
void L2DifferenceAssembly< dim, TEqData >::end ( )
inlineoverridevirtual

Implements AssemblyBase::end.

Reimplemented from AssemblyBase< dim >.

Definition at line 190 of file assembly_flow_output.hh.

◆ initialize()

template<unsigned int dim, class TEqData >
void L2DifferenceAssembly< dim, TEqData >::initialize ( )
inline

Initialize auxiliary vectors and other data members.

Definition at line 78 of file assembly_flow_output.hh.

◆ name()

template<unsigned int dim, class TEqData >
static constexpr const char* L2DifferenceAssembly< dim, TEqData >::name ( )
inlinestaticconstexpr

Definition at line 58 of file assembly_flow_output.hh.

Friends And Related Function Documentation

◆ GenericAssembly

template<unsigned int dim, class TEqData >
template<template< IntDim... > class DimAssembly>
friend class GenericAssembly
friend

Definition at line 240 of file assembly_flow_output.hh.

Member Data Documentation

◆ conductivity_

template<unsigned int dim, class TEqData >
double L2DifferenceAssembly< dim, TEqData >::conductivity_
protected

Definition at line 230 of file assembly_flow_output.hh.

◆ cross_

template<unsigned int dim, class TEqData >
double L2DifferenceAssembly< dim, TEqData >::cross_
protected

Field results.

Definition at line 230 of file assembly_flow_output.hh.

◆ eq_data_

template<unsigned int dim, class TEqData >
EqData* L2DifferenceAssembly< dim, TEqData >::eq_data_
protected

Definition at line 222 of file assembly_flow_output.hh.

◆ eq_fields_

template<unsigned int dim, class TEqData >
EqFields* L2DifferenceAssembly< dim, TEqData >::eq_fields_
protected

Data objects shared with Flow equation.

Definition at line 221 of file assembly_flow_output.hh.

◆ flux_in_q_point_

template<unsigned int dim, class TEqData >
arma::vec3 L2DifferenceAssembly< dim, TEqData >::flux_in_q_point_
protected

Precomputed flux in quadrature point.

Definition at line 227 of file assembly_flow_output.hh.

◆ fluxes_

template<unsigned int dim, class TEqData >
std::vector<double> L2DifferenceAssembly< dim, TEqData >::fluxes_
protected

Precomputed fluxes on element sides.

following is used for calculation of postprocessed pressure difference and comparison to analytical solution

Definition at line 226 of file assembly_flow_output.hh.

◆ JxW_

template<unsigned int dim, class TEqData >
FeQ<Scalar> L2DifferenceAssembly< dim, TEqData >::JxW_
protected

Following data members represent Element quantities and FE quantities.

Definition at line 235 of file assembly_flow_output.hh.

◆ output_integral_

template<unsigned int dim, class TEqData >
std::shared_ptr<BulkIntegralAcc<dim> > L2DifferenceAssembly< dim, TEqData >::output_integral_
protected

Integral accessor of assembly class.

Definition at line 232 of file assembly_flow_output.hh.

◆ pt_coords_

template<unsigned int dim, class TEqData >
FeQ<Vector> L2DifferenceAssembly< dim, TEqData >::pt_coords_
protected

Definition at line 236 of file assembly_flow_output.hh.

◆ q_point_

template<unsigned int dim, class TEqData >
arma::vec3 L2DifferenceAssembly< dim, TEqData >::q_point_
protected

Local coords of quadrature point.

Definition at line 228 of file assembly_flow_output.hh.

◆ ref_divergence_

template<unsigned int dim, class TEqData >
double L2DifferenceAssembly< dim, TEqData >::ref_divergence_
protected

Definition at line 230 of file assembly_flow_output.hh.

◆ ref_flux_

template<unsigned int dim, class TEqData >
arma::vec3 L2DifferenceAssembly< dim, TEqData >::ref_flux_
protected

Field result.

Definition at line 229 of file assembly_flow_output.hh.

◆ ref_pressure_

template<unsigned int dim, class TEqData >
double L2DifferenceAssembly< dim, TEqData >::ref_pressure_
protected

Definition at line 230 of file assembly_flow_output.hh.

◆ used_fields_

template<unsigned int dim, class TEqData >
FieldSet L2DifferenceAssembly< dim, TEqData >::used_fields_
protected

Sub field set contains fields used in calculation.

Definition at line 218 of file assembly_flow_output.hh.

◆ vec_shape_rt_

template<unsigned int dim, class TEqData >
FeQArray<Vector> L2DifferenceAssembly< dim, TEqData >::vec_shape_rt_
protected

Definition at line 237 of file assembly_flow_output.hh.


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