Flow123d
master-1edfbef2b
|
Go to the documentation of this file.
18 #ifndef ASSEMBLY_HM_HH_
19 #define ASSEMBLY_HM_HH_
34 template <
unsigned int dim>
42 static constexpr
const char *
name() {
return "FlowPotentialAssemblyHM"; }
62 shared_ptr<FE_P<dim>> fe_p = std::make_shared< FE_P<dim> >(1);
63 shared_ptr<FiniteElement<dim>> fe_ = std::make_shared<FESystem<dim>>(fe_p,
FEVector, 3);
82 unsigned int flow_bc_type =
eq_data_->
flow_->eq_fields().bc_type(p_bdr);
94 double bc_pressure =
eq_data_->
flow_->eq_fields().bc_pressure(p_bdr);
117 template <
template<
IntDim...>
class DimAssembly>
123 template <
unsigned int dim>
130 static constexpr
const char *
name() {
return "ResidualAssemblyHM"; }
146 shared_ptr<FE_P<dim>> fe_ = std::make_shared< FE_P<dim> >(0);
154 if (cell.
dim() != dim)
return;
155 if (!cell.
is_own())
return;
161 for (
auto p : this->
bulk_points(element_patch_idx) )
163 double new_p =
eq_data_->
flow_->eq_fields().field_ele_pressure(p);
183 template <
template<
IntDim...>
class DimAssembly>
Field< 3, FieldValue< 3 >::Scalar > alpha
Biot coefficient.
arma::Col< IntIdx > LocDofVec
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > ref_potential_ptr_
FieldFE for pressure_potential field.
Side side() const
Return Side of given cell and side_idx.
Field< 3, FieldValue< 3 >::Scalar > density
Density of fluid.
EqFields * eq_fields_
Fields shared with HM_Iterative.
Quadrature * quad_low_
Quadrature used in assembling methods (dim-1).
void initialize(ElementCacheMap *element_cache_map)
Initialize auxiliary vectors and other data members.
FieldSet used_fields_
Sub field set contains fields used in calculation.
double JxW(const unsigned int point_no)
Return the product of Jacobian determinant and the quadrature weight at given quadrature point.
bool is_boundary() const
Returns true for side on the boundary.
Directing class of FieldValueCache.
Field< 3, FieldValue< 3 >::Scalar > old_iter_pressure
~FlowPotentialAssemblyHM()
Destructor.
Class FEValues calculates finite element data on the actual cells such as shape function values,...
VectorMPI ref_potential_vec_
Vector of dofs of field ref_potential.
bool is_own() const
Return true if accessor represents own element (false for ghost element)
HM_Iterative::EqFields EqFields
void initialize(Quadrature &_quadrature, FiniteElement< DIM > &_fe, UpdateFlags _flags)
Initialize structures and calculates cell-independent data.
unsigned int dim() const
Return dimension of element appropriate to cell.
static constexpr const char * name()
HM_Iterative::EqData EqData
Field< 3, FieldValue< 3 >::Scalar > gravity
Standard gravity.
Definitions of basic Lagrangean finite elements with polynomial shape functions.
void set(unsigned int pos, double val)
Set value on given position.
Side accessor allows to iterate over sides of DOF handler cell.
static constexpr const char * name()
FlowPotentialAssemblyHM(EqFields *eq_fields, EqData *eq_data)
Constructor.
LocDofVec dof_indices_
Vector of global DOF indices.
const DHCellAccessor & cell() const
Return DHCellAccessor appropriate to the side.
Definitions of particular quadrature rules on simplices.
HM_Iterative::EqData EqData
EqFields * eq_fields_
Data objects shared with Elasticity.
const ElementAccessor< 3 > elm() const
Return ElementAccessor to element of loc_ele_idx_.
void cell_integral(DHCellAccessor cell, unsigned int element_patch_idx)
Assemble integral over element.
FEValues< 3 > fe_values_
FEValues of cell object.
FieldSet used_fields_
Sub field set contains fields used in calculation.
Container for various descendants of FieldCommonBase.
ElementAccessor< 3 > element_accessor()
double p_norm2
Squared pressure norm in the last iteration.
Range< BulkPoint > bulk_points(unsigned int element_patch_idx) const
Return BulkPoint range of appropriate dimension.
void boundary_side_integral(DHCellSide dh_side)
Assemble integral over element.
std::shared_ptr< DarcyLMH > flow_
steady or unsteady water flow simulator based on MH scheme
FEValues< 3 > fe_values_side_
FEValues of side object.
Cell accessor allow iterate over DOF handler cells.
double p_dif2
Squared norm of pressure difference in two subsequent iterations.
void initialize(ElementCacheMap *element_cache_map)
Initialize auxiliary vectors and other data members.
int active_integrals_
Holds mask of active integrals.
@ update_JxW_values
Transformed quadrature weights.
LocDofVec get_loc_dof_indices() const
Returns the local indices of dofs associated to the cell on the local process.
void reinit(const ElementAccessor< spacedim > &cell)
Update cell-dependent data (gradients, Jacobians etc.)
DarcyLMH::EqFields FlowEqFields
HM_Iterative::EqFields EqFields
@ update_side_JxW_values
Transformed quadrature weight for cell sides.
unsigned int side_idx() const
ResidualAssemblyHM(EqFields *eq_fields, EqData *eq_data)
Constructor.
Generic class of assemblation.
Range< BoundaryPoint > boundary_points(const DHCellSide &cell_side) const
Return BoundaryPoint range of appropriate dimension.
ElementCacheMap * element_cache_map_
ElementCacheMap shared with GenericAssembly object.
~ResidualAssemblyHM()
Destructor.
EqData * eq_data_
Data objects shared with HM_Iterative.
Quadrature * quad_
Quadrature used in assembling methods.
unsigned int IntDim
A dimension index type.