Flow123d  JS_before_hm-995-g9546b8d
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
StiffnessAssemblyDG< dim, Model > Class Template Reference

#include <assembly_dg.hh>

Inheritance diagram for StiffnessAssemblyDG< dim, Model >:
Inheritance graph
[legend]
Collaboration diagram for StiffnessAssemblyDG< dim, Model >:
Collaboration graph
[legend]

Public Types

typedef TransportDG< Model >::EqData EqDataDG
 

Public Member Functions

 StiffnessAssemblyDG (EqDataDG *data)
 Constructor. More...
 
 ~StiffnessAssemblyDG ()
 Destructor. More...
 
void initialize (TransportDG< Model > &model)
 Initialize auxiliary vectors and other data members. More...
 
void assemble_volume_integrals (DHCellAccessor cell) override
 Assembles the volume integrals into the stiffness matrix. More...
 
void assemble_fluxes_boundary (DHCellSide cell_side) override
 Assembles the fluxes on the boundary. More...
 
void assemble_fluxes_element_element (RangeConvert< DHEdgeSide, DHCellSide > edge_side_range) override
 Assembles the fluxes between elements of the same dimension. More...
 
void assemble_fluxes_element_side (DHCellAccessor cell_lower_dim, DHCellSide neighb_side) override
 Assembles the fluxes between elements of different dimensions. More...
 
- Public Member Functions inherited from AssemblyBase< dim >
virtual void fix_velocity (const DHCellAccessor &dh_cell)=0
 
virtual void assemble (const DHCellAccessor &dh_cell)=0
 
virtual void assemble_reconstruct (const DHCellAccessor &dh_cell)=0
 
virtual void update_water_content (const DHCellAccessor &dh_cell)=0
 Updates water content in Richards. More...
 
virtual ~AssemblyBase ()
 
 AssemblyBase (unsigned int quad_order)
 Constructor. More...
 
virtual ~AssemblyBase ()
 
virtual void assemble_volume_integrals (FMT_UNUSED DHCellAccessor cell)
 Assembles the volume integrals on cell. More...
 
virtual void assemble_fluxes_boundary (FMT_UNUSED DHCellSide cell_side)
 Assembles the fluxes on the boundary. More...
 
virtual void assemble_fluxes_element_element (FMT_UNUSED RangeConvert< DHEdgeSide, DHCellSide > edge_side_range)
 Assembles the fluxes between sides on the edge. More...
 
virtual void assemble_fluxes_element_side (FMT_UNUSED DHCellAccessor cell_lower_dim, FMT_UNUSED DHCellSide neighb_side)
 Assembles the fluxes between elements of different dimensions. More...
 
virtual void begin ()
 Method prepares object before assemblation (e.g. balance, ...). More...
 
virtual void end ()
 Method finishes object after assemblation (e.g. balance, ...). More...
 
void create_integrals (std::shared_ptr< EvalPoints > eval_points, AssemblyIntegrals &integrals, int active_integrals)
 Create integrals according to dim of assembly object. More...
 

Private Member Functions

void calculate_velocity (const ElementAccessor< 3 > &cell, vector< arma::vec3 > &velocity, const Armor::array &point_list)
 Calculates the velocity field on a given cell. More...
 

Private Attributes

shared_ptr< FiniteElement< dim > > fe_
 Finite element for the solution of the advection-diffusion equation. More...
 
shared_ptr< FiniteElement< dim-1 > > fe_low_
 Finite element for the solution of the advection-diffusion equation (dim-1). More...
 
FiniteElement< dim > * fe_rt_
 Finite element for the water velocity field. More...
 
FiniteElement< dim-1 > * fe_rt_low_
 Finite element for the water velocity field (dim-1). More...
 
TransportDG< Model > * model_
 Pointer to model (we must use common ancestor of concentration and heat model) More...
 
EqDataDGdata_
 Data object shared with TransportDG. More...
 
unsigned int ndofs_
 Number of dofs. More...
 
unsigned int qsize_
 Size of quadrature of actual dim. More...
 
unsigned int qsize_lower_dim_
 Size of quadrature of dim-1. More...
 
FEValues< 3 > fv_rt_
 FEValues of object (of RT0 finite element type) More...
 
FEValues< 3 > fe_values_
 FEValues of object (of P disc finite element type) More...
 
FEValues< 3 > fv_rt_vb_
 FEValues of dim-1 object (of RT0 finite element type) More...
 
FEValues< 3 > fe_values_vb_
 FEValues of dim-1 object (of P disc finite element type) More...
 
FEValues< 3 > fe_values_side_
 FEValues of object (of P disc finite element type) More...
 
FEValues< 3 > fsv_rt_
 FEValues of object (of RT0 finite element type) More...
 
vector< FEValues< 3 > > fe_values_vec_
 Vector of FEValues of object (of P disc finite element types) More...
 
vector< FEValues< 3 > * > fv_sb_
 Auxiliary vector, holds FEValues objects for assemble element-side. More...
 
vector< LongIdxdof_indices_
 Vector of global DOF indices. More...
 
vector< vector< LongIdx > > side_dof_indices_
 Vector of vectors of side DOF indices. More...
 
vector< LongIdxside_dof_indices_vb_
 Vector of side DOF indices (assemble element-side fluxex) More...
 
vector< PetscScalar > local_matrix_
 Auxiliary vector for assemble methods. More...
 
vector< PetscScalar > local_retardation_balance_vector_
 Auxiliary vector for assemble mass matrix. More...
 
vector< PetscScalar > local_mass_balance_vector_
 Same as previous. More...
 
vector< arma::vec3velocity_
 Auxiliary results. More...
 
vector< arma::vec3velocity_higher_
 Velocity results of higher dim element (element-side computation). More...
 
vector< vector< arma::vec3 > > side_velocity_vec_
 Vector of velocities results. More...
 
vector< vector< double > > sources_sigma_
 Auxiliary vectors for assemble volume integrals and set_sources method. More...
 
vector< double > sigma_
 Auxiliary vector for assemble boundary fluxes (robin sigma), element-side fluxes (frac sigma) and set boundary conditions method. More...
 
vector< double > csection_
 Auxiliary vector for assemble boundary fluxes, element-side fluxes and set boundary conditions. More...
 
vector< double > csection_higher_
 Auxiliary vector for assemble element-side fluxes. More...
 
vector< vector< double > > dg_penalty_
 Auxiliary vectors for assemble element-element fluxes. More...
 
vector< double > mm_coef_
 Mass matrix coefficients. More...
 
vector< vector< double > > ret_coef_
 Retardation coefficient due to sorption. More...
 
Auxiliary variables used during element-element assembly
double gamma_l
 
double omega [2]
 
double transport_flux
 
double delta [2]
 
double delta_sum
 
double aniso1
 
double aniso2
 
int sid
 
int s1
 
int s2
 
Auxiliary variables used during element-side assembly
unsigned int n_dofs [2]
 
unsigned int n_indices
 
double comm_flux [2][2]
 

Friends

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

Additional Inherited Members

- Static Public Member Functions inherited from AssemblyBase< dim >
template<template< int dim > class Impl, class Data >
static MultidimAssembly create (Data data)
 
- Protected Attributes inherited from AssemblyBase< dim >
Quadraturequad_
 Quadrature used in assembling methods. More...
 
Quadraturequad_low_
 Quadrature used in assembling methods (dim-1). More...
 

Detailed Description

template<unsigned int dim, class Model>
class StiffnessAssemblyDG< dim, Model >

Auxiliary container class for Finite element and related objects of given dimension.

Definition at line 542 of file assembly_dg.hh.

Member Typedef Documentation

template<unsigned int dim, class Model >
typedef TransportDG<Model>::EqData StiffnessAssemblyDG< dim, Model >::EqDataDG

Definition at line 545 of file assembly_dg.hh.

Constructor & Destructor Documentation

template<unsigned int dim, class Model >
StiffnessAssemblyDG< dim, Model >::StiffnessAssemblyDG ( EqDataDG data)
inline

Constructor.

Definition at line 548 of file assembly_dg.hh.

template<unsigned int dim, class Model >
StiffnessAssemblyDG< dim, Model >::~StiffnessAssemblyDG ( )
inline

Destructor.

Definition at line 552 of file assembly_dg.hh.

Member Function Documentation

template<unsigned int dim, class Model >
void StiffnessAssemblyDG< dim, Model >::assemble_fluxes_boundary ( DHCellSide  cell_side)
inlineoverride

Assembles the fluxes on the boundary.

Definition at line 656 of file assembly_dg.hh.

template<unsigned int dim, class Model >
void StiffnessAssemblyDG< dim, Model >::assemble_fluxes_element_element ( RangeConvert< DHEdgeSide, DHCellSide edge_side_range)
inlineoverride

Assembles the fluxes between elements of the same dimension.

Definition at line 737 of file assembly_dg.hh.

template<unsigned int dim, class Model >
void StiffnessAssemblyDG< dim, Model >::assemble_fluxes_element_side ( DHCellAccessor  cell_lower_dim,
DHCellSide  neighb_side 
)
inlineoverride

Assembles the fluxes between elements of different dimensions.

Definition at line 887 of file assembly_dg.hh.

template<unsigned int dim, class Model >
void StiffnessAssemblyDG< dim, Model >::assemble_volume_integrals ( DHCellAccessor  cell)
inlineoverride

Assembles the volume integrals into the stiffness matrix.

Definition at line 615 of file assembly_dg.hh.

template<unsigned int dim, class Model >
void StiffnessAssemblyDG< dim, Model >::calculate_velocity ( const ElementAccessor< 3 > &  cell,
vector< arma::vec3 > &  velocity,
const Armor::array point_list 
)
inlineprivate

Calculates the velocity field on a given cell.

Parameters
cellThe cell.
velocityThe computed velocity field (at quadrature points).
point_listThe quadrature points.

Definition at line 977 of file assembly_dg.hh.

template<unsigned int dim, class Model >
void StiffnessAssemblyDG< dim, Model >::initialize ( TransportDG< Model > &  model)
inline

Initialize auxiliary vectors and other data members.

Definition at line 560 of file assembly_dg.hh.

Friends And Related Function Documentation

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

Definition at line 1046 of file assembly_dg.hh.

template<unsigned int dim, class Model >
friend class TransportDG< Model >
friend

Definition at line 1044 of file assembly_dg.hh.

Member Data Documentation

template<unsigned int dim, class Model >
double StiffnessAssemblyDG< dim, Model >::aniso1
private

Definition at line 1031 of file assembly_dg.hh.

template<unsigned int dim, class Model >
double StiffnessAssemblyDG< dim, Model >::aniso2
private

Definition at line 1031 of file assembly_dg.hh.

template<unsigned int dim, class Model >
double StiffnessAssemblyDG< dim, Model >::comm_flux[2][2]
private

Definition at line 1040 of file assembly_dg.hh.

template<unsigned int dim, class Model >
vector<double> StiffnessAssemblyDG< dim, Model >::csection_
private

Auxiliary vector for assemble boundary fluxes, element-side fluxes and set boundary conditions.

Definition at line 1018 of file assembly_dg.hh.

template<unsigned int dim, class Model >
vector<double> StiffnessAssemblyDG< dim, Model >::csection_higher_
private

Auxiliary vector for assemble element-side fluxes.

Definition at line 1019 of file assembly_dg.hh.

template<unsigned int dim, class Model >
EqDataDG* StiffnessAssemblyDG< dim, Model >::data_
private

Data object shared with TransportDG.

Definition at line 993 of file assembly_dg.hh.

template<unsigned int dim, class Model >
double StiffnessAssemblyDG< dim, Model >::delta[2]
private

Definition at line 1030 of file assembly_dg.hh.

template<unsigned int dim, class Model >
double StiffnessAssemblyDG< dim, Model >::delta_sum
private

Definition at line 1030 of file assembly_dg.hh.

template<unsigned int dim, class Model >
vector<vector<double> > StiffnessAssemblyDG< dim, Model >::dg_penalty_
private

Auxiliary vectors for assemble element-element fluxes.

Definition at line 1020 of file assembly_dg.hh.

template<unsigned int dim, class Model >
vector<LongIdx> StiffnessAssemblyDG< dim, Model >::dof_indices_
private

Vector of global DOF indices.

Definition at line 1007 of file assembly_dg.hh.

template<unsigned int dim, class Model >
shared_ptr<FiniteElement<dim> > StiffnessAssemblyDG< dim, Model >::fe_
private

Finite element for the solution of the advection-diffusion equation.

Definition at line 984 of file assembly_dg.hh.

template<unsigned int dim, class Model >
shared_ptr<FiniteElement<dim-1> > StiffnessAssemblyDG< dim, Model >::fe_low_
private

Finite element for the solution of the advection-diffusion equation (dim-1).

Definition at line 985 of file assembly_dg.hh.

template<unsigned int dim, class Model >
FiniteElement<dim>* StiffnessAssemblyDG< dim, Model >::fe_rt_
private

Finite element for the water velocity field.

Definition at line 986 of file assembly_dg.hh.

template<unsigned int dim, class Model >
FiniteElement<dim-1>* StiffnessAssemblyDG< dim, Model >::fe_rt_low_
private

Finite element for the water velocity field (dim-1).

Definition at line 987 of file assembly_dg.hh.

template<unsigned int dim, class Model >
FEValues<3> StiffnessAssemblyDG< dim, Model >::fe_values_
private

FEValues of object (of P disc finite element type)

Definition at line 999 of file assembly_dg.hh.

template<unsigned int dim, class Model >
FEValues<3> StiffnessAssemblyDG< dim, Model >::fe_values_side_
private

FEValues of object (of P disc finite element type)

Definition at line 1002 of file assembly_dg.hh.

template<unsigned int dim, class Model >
FEValues<3> StiffnessAssemblyDG< dim, Model >::fe_values_vb_
private

FEValues of dim-1 object (of P disc finite element type)

Definition at line 1001 of file assembly_dg.hh.

template<unsigned int dim, class Model >
vector<FEValues<3> > StiffnessAssemblyDG< dim, Model >::fe_values_vec_
private

Vector of FEValues of object (of P disc finite element types)

Definition at line 1004 of file assembly_dg.hh.

template<unsigned int dim, class Model >
FEValues<3> StiffnessAssemblyDG< dim, Model >::fsv_rt_
private

FEValues of object (of RT0 finite element type)

Definition at line 1003 of file assembly_dg.hh.

template<unsigned int dim, class Model >
FEValues<3> StiffnessAssemblyDG< dim, Model >::fv_rt_
private

FEValues of object (of RT0 finite element type)

Definition at line 998 of file assembly_dg.hh.

template<unsigned int dim, class Model >
FEValues<3> StiffnessAssemblyDG< dim, Model >::fv_rt_vb_
private

FEValues of dim-1 object (of RT0 finite element type)

Definition at line 1000 of file assembly_dg.hh.

template<unsigned int dim, class Model >
vector<FEValues<3>*> StiffnessAssemblyDG< dim, Model >::fv_sb_
private

Auxiliary vector, holds FEValues objects for assemble element-side.

Definition at line 1005 of file assembly_dg.hh.

template<unsigned int dim, class Model >
double StiffnessAssemblyDG< dim, Model >::gamma_l
private

Definition at line 1030 of file assembly_dg.hh.

template<unsigned int dim, class Model >
vector<PetscScalar> StiffnessAssemblyDG< dim, Model >::local_mass_balance_vector_
private

Same as previous.

Definition at line 1012 of file assembly_dg.hh.

template<unsigned int dim, class Model >
vector<PetscScalar> StiffnessAssemblyDG< dim, Model >::local_matrix_
private

Auxiliary vector for assemble methods.

Definition at line 1010 of file assembly_dg.hh.

template<unsigned int dim, class Model >
vector<PetscScalar> StiffnessAssemblyDG< dim, Model >::local_retardation_balance_vector_
private

Auxiliary vector for assemble mass matrix.

Definition at line 1011 of file assembly_dg.hh.

template<unsigned int dim, class Model >
vector<double> StiffnessAssemblyDG< dim, Model >::mm_coef_
private

Mass matrix coefficients.

Definition at line 1023 of file assembly_dg.hh.

template<unsigned int dim, class Model >
TransportDG<Model>* StiffnessAssemblyDG< dim, Model >::model_
private

Pointer to model (we must use common ancestor of concentration and heat model)

Definition at line 990 of file assembly_dg.hh.

template<unsigned int dim, class Model >
unsigned int StiffnessAssemblyDG< dim, Model >::n_dofs[2]
private

Definition at line 1039 of file assembly_dg.hh.

template<unsigned int dim, class Model >
unsigned int StiffnessAssemblyDG< dim, Model >::n_indices
private

Definition at line 1039 of file assembly_dg.hh.

template<unsigned int dim, class Model >
unsigned int StiffnessAssemblyDG< dim, Model >::ndofs_
private

Number of dofs.

Definition at line 995 of file assembly_dg.hh.

template<unsigned int dim, class Model >
double StiffnessAssemblyDG< dim, Model >::omega[2]
private

Definition at line 1030 of file assembly_dg.hh.

template<unsigned int dim, class Model >
unsigned int StiffnessAssemblyDG< dim, Model >::qsize_
private

Size of quadrature of actual dim.

Definition at line 996 of file assembly_dg.hh.

template<unsigned int dim, class Model >
unsigned int StiffnessAssemblyDG< dim, Model >::qsize_lower_dim_
private

Size of quadrature of dim-1.

Definition at line 997 of file assembly_dg.hh.

template<unsigned int dim, class Model >
vector<vector<double> > StiffnessAssemblyDG< dim, Model >::ret_coef_
private

Retardation coefficient due to sorption.

Definition at line 1025 of file assembly_dg.hh.

template<unsigned int dim, class Model >
int StiffnessAssemblyDG< dim, Model >::s1
private

Definition at line 1032 of file assembly_dg.hh.

template<unsigned int dim, class Model >
int StiffnessAssemblyDG< dim, Model >::s2
private

Definition at line 1032 of file assembly_dg.hh.

template<unsigned int dim, class Model >
int StiffnessAssemblyDG< dim, Model >::sid
private

Definition at line 1032 of file assembly_dg.hh.

template<unsigned int dim, class Model >
vector< vector<LongIdx> > StiffnessAssemblyDG< dim, Model >::side_dof_indices_
private

Vector of vectors of side DOF indices.

Definition at line 1008 of file assembly_dg.hh.

template<unsigned int dim, class Model >
vector<LongIdx> StiffnessAssemblyDG< dim, Model >::side_dof_indices_vb_
private

Vector of side DOF indices (assemble element-side fluxex)

Definition at line 1009 of file assembly_dg.hh.

template<unsigned int dim, class Model >
vector<vector<arma::vec3> > StiffnessAssemblyDG< dim, Model >::side_velocity_vec_
private

Vector of velocities results.

Definition at line 1015 of file assembly_dg.hh.

template<unsigned int dim, class Model >
vector<double> StiffnessAssemblyDG< dim, Model >::sigma_
private

Auxiliary vector for assemble boundary fluxes (robin sigma), element-side fluxes (frac sigma) and set boundary conditions method.

Definition at line 1017 of file assembly_dg.hh.

template<unsigned int dim, class Model >
vector<vector<double> > StiffnessAssemblyDG< dim, Model >::sources_sigma_
private

Auxiliary vectors for assemble volume integrals and set_sources method.

Definition at line 1016 of file assembly_dg.hh.

template<unsigned int dim, class Model >
double StiffnessAssemblyDG< dim, Model >::transport_flux
private

Definition at line 1030 of file assembly_dg.hh.

template<unsigned int dim, class Model >
vector<arma::vec3> StiffnessAssemblyDG< dim, Model >::velocity_
private

Auxiliary results.

Definition at line 1013 of file assembly_dg.hh.

template<unsigned int dim, class Model >
vector<arma::vec3> StiffnessAssemblyDG< dim, Model >::velocity_higher_
private

Velocity results of higher dim element (element-side computation).

Definition at line 1014 of file assembly_dg.hh.


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