Flow123d  DF_patch_fe_data_tables-3c41206
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Friends | List of all members
L2DifferenceAssembly< dim > Class Template Reference

#include <assembly_flow_output.hh>

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

Public Types

typedef DarcyLMH::EqFields EqFields
 
typedef DarcyFlowMHOutput::DiffEqData EqData
 
- Public Types inherited from AssemblyBase< dim >
typedef GenericAssemblyBase::BulkIntegralData BulkIntegralData
 
typedef GenericAssemblyBase::EdgeIntegralData EdgeIntegralData
 
typedef GenericAssemblyBase::CouplingIntegralData CouplingIntegralData
 
typedef GenericAssemblyBase::BoundaryIntegralData BoundaryIntegralData
 

Public Member Functions

 L2DifferenceAssembly (EqFields *eq_fields, EqData *eq_data)
 Constructor. More...
 
virtual ~L2DifferenceAssembly ()
 Destructor. More...
 
void initialize (ElementCacheMap *element_cache_map)
 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 AssemblyBase< dim >
 AssemblyBase (unsigned int quad_order)
 Constructor. More...
 
virtual ~AssemblyBase ()
 Destructor. More...
 
virtual void cell_integral (FMT_UNUSED DHCellAccessor cell, FMT_UNUSED unsigned int element_patch_idx)
 Assembles the volume integrals on cell. More...
 
virtual void boundary_side_integral (FMT_UNUSED DHCellSide cell_side)
 Assembles the fluxes on the boundary. More...
 
virtual void edge_integral (FMT_UNUSED RangeConvert< DHEdgeSide, DHCellSide > edge_side_range)
 Assembles the fluxes between sides on the edge. More...
 
virtual void dimjoin_intergral (FMT_UNUSED DHCellAccessor cell_lower_dim, FMT_UNUSED DHCellSide neighb_side)
 Assembles the fluxes between elements of different dimensions. More...
 
virtual void patch_reinit (FMT_UNUSED std::array< PatchElementsList, 4 > &patch_elements)
 
int n_active_integrals () const
 Getter of active_integrals. More...
 
void create_integrals (std::shared_ptr< EvalPoints > eval_points, AssemblyIntegrals &integrals)
 Create integrals according to dim of assembly object. More...
 
Range< BulkPointbulk_points (unsigned int element_patch_idx) const
 Return BulkPoint range of appropriate dimension. More...
 
Range< EdgePointedge_points (const DHCellSide &cell_side) const
 Return EdgePoint range of appropriate dimension. More...
 
Range< CouplingPointcoupling_points (const DHCellSide &cell_side) const
 Return CouplingPoint range of appropriate dimension. More...
 
Range< BoundaryPointboundary_points (const DHCellSide &cell_side) const
 Return BoundaryPoint range of appropriate dimension. More...
 
virtual void assemble_cell_integrals (const RevertableList< BulkIntegralData > &bulk_integral_data)
 Assembles the cell integrals for the given dimension. More...
 
void assemble_boundary_side_integrals (const RevertableList< BoundaryIntegralData > &boundary_integral_data)
 Assembles the boundary side integrals for the given dimension. More...
 
void assemble_edge_integrals (const RevertableList< EdgeIntegralData > &edge_integral_data)
 Assembles the edge integrals for the given dimension. More...
 
void assemble_neighbour_integrals (const RevertableList< CouplingIntegralData > &coupling_integral_data)
 Assembles the neighbours integrals for the given dimension. More...
 
virtual void add_patch_bulk_points (FMT_UNUSED const RevertableList< BulkIntegralData > &bulk_integral_data)
 Register cell points of volume integral. More...
 
virtual void add_patch_bdr_side_points (FMT_UNUSED const RevertableList< BoundaryIntegralData > &boundary_integral_data)
 Register side points of boundary side integral. More...
 
virtual void add_patch_edge_points (FMT_UNUSED const RevertableList< EdgeIntegralData > &edge_integral_data)
 Register side points of edge integral. More...
 
virtual void add_patch_coupling_integrals (FMT_UNUSED const RevertableList< CouplingIntegralData > &coupling_integral_data)
 Register bulk and side points of coupling integral. 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::shared_ptr< FE_P_disc< dim > > fe_p0_
 
FEValues< 3 > fe_values_
 
FE_RT0< dim > fe_rt_
 FEValues for velocity. More...
 
FEValues< 3 > fv_rt_
 
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...
 
- Protected Attributes inherited from AssemblyBase< dim >
Quadraturequad_
 Quadrature used in assembling methods. More...
 
Quadraturequad_low_
 Quadrature used in assembling methods (dim-1). More...
 
int active_integrals_
 Holds mask of active integrals. More...
 
DimIntegrals integrals_
 Set of used integrals. More...
 
ElementCacheMapelement_cache_map_
 ElementCacheMap shared with GenericAssembly object. More...
 

Friends

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

Additional Inherited Members

- Protected Member Functions inherited from AssemblyBase< dim >
 AssemblyBase ()
 
std::string print_update_flags (UpdateFlags u) const
 Print update flags to string format. More...
 

Detailed Description

template<unsigned int dim>
class L2DifferenceAssembly< dim >

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

Member Typedef Documentation

◆ EqData

template<unsigned int dim>
typedef DarcyFlowMHOutput::DiffEqData L2DifferenceAssembly< dim >::EqData

Definition at line 58 of file assembly_flow_output.hh.

◆ EqFields

template<unsigned int dim>
typedef DarcyLMH::EqFields L2DifferenceAssembly< dim >::EqFields

Definition at line 57 of file assembly_flow_output.hh.

Constructor & Destructor Documentation

◆ L2DifferenceAssembly()

template<unsigned int dim>
L2DifferenceAssembly< dim >::L2DifferenceAssembly ( EqFields eq_fields,
EqData eq_data 
)
inline

Constructor.

Definition at line 63 of file assembly_flow_output.hh.

◆ ~L2DifferenceAssembly()

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

Destructor.

Definition at line 74 of file assembly_flow_output.hh.

Member Function Documentation

◆ begin()

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

Implements AssemblyBase::begin.

Reimplemented from AssemblyBase< dim >.

Definition at line 187 of file assembly_flow_output.hh.

◆ cell_integral()

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

Assemble integral over element.

Definition at line 90 of file assembly_flow_output.hh.

◆ end()

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

Implements AssemblyBase::end.

Reimplemented from AssemblyBase< dim >.

Definition at line 200 of file assembly_flow_output.hh.

◆ initialize()

template<unsigned int dim>
void L2DifferenceAssembly< dim >::initialize ( ElementCacheMap element_cache_map)
inline

Initialize auxiliary vectors and other data members.

Definition at line 77 of file assembly_flow_output.hh.

◆ name()

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

Definition at line 60 of file assembly_flow_output.hh.

Friends And Related Function Documentation

◆ GenericAssembly

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

Definition at line 250 of file assembly_flow_output.hh.

Member Data Documentation

◆ conductivity_

template<unsigned int dim>
double L2DifferenceAssembly< dim >::conductivity_
protected

Definition at line 247 of file assembly_flow_output.hh.

◆ cross_

template<unsigned int dim>
double L2DifferenceAssembly< dim >::cross_
protected

Field results.

Definition at line 247 of file assembly_flow_output.hh.

◆ eq_data_

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

Definition at line 232 of file assembly_flow_output.hh.

◆ eq_fields_

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

Data objects shared with Flow equation.

Definition at line 231 of file assembly_flow_output.hh.

◆ fe_p0_

template<unsigned int dim>
std::shared_ptr<FE_P_disc<dim> > L2DifferenceAssembly< dim >::fe_p0_
protected

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

Definition at line 236 of file assembly_flow_output.hh.

◆ fe_rt_

template<unsigned int dim>
FE_RT0<dim> L2DifferenceAssembly< dim >::fe_rt_
protected

FEValues for velocity.

Definition at line 240 of file assembly_flow_output.hh.

◆ fe_values_

template<unsigned int dim>
FEValues<3> L2DifferenceAssembly< dim >::fe_values_
protected

Definition at line 237 of file assembly_flow_output.hh.

◆ flux_in_q_point_

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

Precomputed flux in quadrature point.

Definition at line 244 of file assembly_flow_output.hh.

◆ fluxes_

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

Precomputed fluxes on element sides.

Definition at line 243 of file assembly_flow_output.hh.

◆ fv_rt_

template<unsigned int dim>
FEValues<3> L2DifferenceAssembly< dim >::fv_rt_
protected

Definition at line 241 of file assembly_flow_output.hh.

◆ q_point_

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

Local coords of quadrature point.

Definition at line 245 of file assembly_flow_output.hh.

◆ ref_divergence_

template<unsigned int dim>
double L2DifferenceAssembly< dim >::ref_divergence_
protected

Definition at line 247 of file assembly_flow_output.hh.

◆ ref_flux_

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

Field result.

Definition at line 246 of file assembly_flow_output.hh.

◆ ref_pressure_

template<unsigned int dim>
double L2DifferenceAssembly< dim >::ref_pressure_
protected

Definition at line 247 of file assembly_flow_output.hh.

◆ used_fields_

template<unsigned int dim>
FieldSet L2DifferenceAssembly< dim >::used_fields_
protected

Sub field set contains fields used in calculation.

Definition at line 228 of file assembly_flow_output.hh.


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