18#ifndef __H__UG__LIB_DISC__PRESSURE_DRIVEN_FLOW__FRACT_PF_FV1_
19#define __H__UG__LIB_DISC__PRESSURE_DRIVEN_FLOW__FRACT_PF_FV1_
57template <
typename TDomain>
96 static const size_t _P_ = 0;
103 const char* functions,
111 const char* functions,
224 const std::vector<LFEID> & vLfeID,
231 template <
typename TElem,
typename TBulkFVGeom>
234 template <
typename TElem,
typename TBulkFVGeom>
237 template <
typename TElem,
typename TBulkFVGeom>
240 template <
typename TElem,
typename TBulkFVGeom>
243 template <
typename TElem,
typename TBulkFVGeom>
246 template <
typename TElem,
typename TBulkFVGeom>
249 template <
typename TElem,
typename TBulkFVGeom>
252 template <
typename TElem,
typename TBulkFVGeom>
258 template <
typename TElem,
typename TBulkFVGeom>
261 template <
typename TElem,
typename TBulkFVGeom>
264 template <
typename TElem,
typename TBulkFVGeom>
267 template <
typename TElem,
typename TBulkFVGeom>
270 template <
typename TElem,
typename TBulkFVGeom>
276 template <
typename TElem>
279 template <
typename TElem>
282 template <
typename TElem>
285 template <
typename TElem>
288 template <
typename TElem>
291 template <
typename TElem>
294 template <
typename TElem>
300 template<
typename TFVGeom>
305 const TFVGeom& bulk_geo,
309 template<
typename TFVGeom>
330 template <
typename TElem,
typename TBulkFVGeom>
333 template <
typename TElem>
static const size_t maxLayerSideCorners
grid_dim_traits< dim >::side_type side_type
static const size_t maxNumSCVF
TDomain::position_type position_type
FV-discretization of the density-driven flow in porous media with fractures.
Definition fract_pf_fv1.h:60
static const int dim
world ('full') dimension
Definition fract_pf_fv1.h:75
static const size_t _P_
abbreviation for the local function: pressure (the only variable)
Definition fract_pf_fv1.h:96
void finish_element_loop()
finalizes the loop over the elements
Definition fract_pf_fv1_impl.h:152
number m_viscosity
viscosity of the fluid phase
Definition fract_pf_fv1.h:345
TFractFVGeom * m_pFractGeo
FV geometry object of fracture elements.
Definition fract_pf_fv1.h:376
fract_manager_type::side_type side_type
type of the sides of elements (als low-dimensional fracture elements)
Definition fract_pf_fv1.h:90
size_t m_assCo[2 *maxFractSideCorners]
correspondence of the corners of the sides
Definition fract_pf_fv1.h:384
void set_fract_permeability(number val)
Definition fract_pf_fv1.h:181
number m_density
density of the fluid phase
Definition fract_pf_fv1.h:344
SmartPtr< CplUserData< number, dim > > m_spOrthoPermeabilityData
Definition fract_pf_fv1.h:359
MathVector< dim > m_elem_loc_scvf[TFractFVGeom::maxNumSCVF]
local ip's in a fracture element
Definition fract_pf_fv1.h:387
DataImport< number, dim > m_imOrthoPermeability
scalar permeability of the fract.-bulk interface (constant per element)
Definition fract_pf_fv1.h:354
side_type * m_innerFractSide
inner side of the fracture element
Definition fract_pf_fv1.h:378
IElemDisc< TDomain > base_type
base class type
Definition fract_pf_fv1.h:63
DataImport< number, dim > m_imAperture
the fracture width (constant per element)
Definition fract_pf_fv1.h:352
void fract_ass_JA_elem(LocalMatrix &J, const LocalVector &u, TElem *elem, const position_type vCornerCoords[])
computes the local stiffness matrix on a fracture element
Definition fract_pf_fv1_impl.h:557
bool condensed_FV()
returns the 'condensed scvf ip' flag
Definition fract_pf_fv1.h:216
void bulk_ass_dA_elem(LocalVector &d, const LocalVector &u, TElem *elem, const position_type vCornerCoords[])
computes the stiffness part of the local defect on a bulk element
Definition fract_pf_fv1_impl.h:343
void fract_prepare_element_loop(ReferenceObjectID roid, int si)
prepares the loop over the elements: the 'fracture' version
Definition fract_pf_fv1_impl.h:126
void set_density(number density)
set the Global parameters (for all subdomains):
Definition fract_pf_fv1.h:125
DataImport< MathVector< dim >, dim > m_imConstGravity
gravity (must be constant)
Definition fract_pf_fv1.h:346
static const int low_dim
manifold ('low') dimension
Definition fract_pf_fv1.h:78
void fract_ass_rhs_elem(LocalVector &d, TElem *elem, const position_type vCornerCoords[])
computes the right-hand side due to the gravitation and the mass sources
Definition fract_pf_fv1_impl.h:737
FractPF_FV1< TDomain > this_type
own type
Definition fract_pf_fv1.h:66
void prepare_element(const LocalVector &u, GridObject *elem, ReferenceObjectID roid, const position_type vCornerCoords[])
prepares a given element for assembling
Definition fract_pf_fv1_impl.h:160
void compute_J_ip_velocity(MathVector< dim > Vel_p[], size_t ip, const TFVGeom &geo)
computes the derivatives of the Darcy velocity (not scaled with the permeability)
Definition fract_pf_fv1_impl.h:476
side_type * m_outerFractSide
outer side of the fracture element
Definition fract_pf_fv1.h:379
void set_gravity(const std::vector< number > &vGravity)
Definition fract_pf_fv1.h:131
void register_loc_discr_func_with_fvgeom()
registers the local assembler functions for a given element
Definition fract_pf_fv1_impl.h:778
void fract_prepare_element(const LocalVector &u, TElem *elem, const position_type vCornerCoords[])
prepares a given fracture element for assembling
Definition fract_pf_fv1_impl.h:203
void fract_bulk_ass_JA_elem(LocalMatrix &J, const LocalVector &u, TElem *elem, const position_type vCornerCoords[])
computes the local stiffness matrix of the fracture-bulk interaction terms on a fracture element
Definition fract_pf_fv1_impl.h:601
virtual void prepare_setting(const std::vector< LFEID > &vLfeID, bool bNonRegular)
check type of the grid and the trial space
Definition fract_pf_fv1_impl.h:37
domain_traits< dim >::DimElemList AssembleElemList
list of element types for assembling
Definition fract_pf_fv1.h:84
void compute_ip_velocity(MathVector< dim > &Vel, size_t ip, const TFVGeom &bulk_geo, number vPressure[])
computes the pressure part of the Darcy velocity (not scaled with the permeability!...
Definition fract_pf_fv1_impl.h:296
void set_orthofract_permeability(number val)
Definition fract_pf_fv1.h:200
size_t m_numFractCo
number of corners of the fracture side
Definition fract_pf_fv1.h:377
MathVector< dim > m_elem_loc_coe
local coordinates of the mass center of a fracture element
Definition fract_pf_fv1.h:386
void fract_bulk_ass_dA_elem(LocalVector &d, const LocalVector &u, TElem *elem, const position_type vCornerCoords[])
computes the stiffness fracture-bulk interaction terms of the local defect on a fracture element
Definition fract_pf_fv1_impl.h:428
void set_permeability(number val)
Definition fract_pf_fv1.h:141
MathVector< dim > m_unitOuterNormal
unit outer normal to the fracture
Definition fract_pf_fv1.h:385
size_t m_outerFractSideIdx
index of the outer side in the ref. elem.
Definition fract_pf_fv1.h:381
void set_aperture(number val)
Definition fract_pf_fv1.h:162
DegeneratedLayerManager< dim > fract_manager_type
fracture manager type
Definition fract_pf_fv1.h:87
SmartPtr< CplUserData< number, dim > > m_spApertureData
Definition fract_pf_fv1.h:357
SmartPtr< fract_manager_type > m_spFractManager
degenerated fracture manager (may be SPNULL)
Definition fract_pf_fv1.h:365
size_t m_innerFractSideIdx
index of the inner side in the ref. elem.
Definition fract_pf_fv1.h:380
void ass_JA_elem(LocalMatrix &J, const LocalVector &u, GridObject *elem, const position_type vCornerCoords[])
computes the local stiffness matrix
Definition fract_pf_fv1_impl.h:494
void prepare_element_loop(ReferenceObjectID roid, int si)
prepares the loop over the elements: checks whether the parameters are set, ...
Definition fract_pf_fv1_impl.h:65
void set_gravity(SmartPtr< CplUserData< MathVector< dim >, dim > > user)
Definition fract_pf_fv1.h:127
void bulk_ass_JA_elem(LocalMatrix &J, const LocalVector &u, TElem *elem, const position_type vCornerCoords[])
computes the local stiffness matrix on a bulk element
Definition fract_pf_fv1_impl.h:517
void set_permeability(SmartPtr< CplUserData< MathMatrix< dim, dim >, dim > > user)
set permeability for full-dimensional subdomains (bulk medium):
Definition fract_pf_fv1.h:137
void set_aperture(SmartPtr< CplUserData< number, dim > > user)
set Specific parameters for low-dimensional subdomains (fractures):
Definition fract_pf_fv1.h:158
void bulk_prepare_element(const LocalVector &u, TElem *elem, const position_type vCornerCoords[])
prepares a given bulk element for assembling
Definition fract_pf_fv1_impl.h:180
void bulk_ass_rhs_elem(LocalVector &d, TElem *elem, const position_type vCornerCoords[])
computes the right-hand side due to the gravitation and the mass sources
Definition fract_pf_fv1_impl.h:697
SmartPtr< DataExport< number, dim > > m_exBrine
Export parameter for the brine mass fraction.
Definition fract_pf_fv1.h:368
void register_discr_and_param(bool condensed)
calls functions for registering all the provided discretization functions and parameters
Definition fract_pf_fv1_impl.h:811
void ass_dA_elem(LocalVector &d, const LocalVector &u, GridObject *elem, const position_type vCornerCoords[])
computes the stiffness part of the local defect
Definition fract_pf_fv1_impl.h:318
size_t m_innerSideCo[maxFractSideCorners]
inner side corner idx -> elem. corner idx
Definition fract_pf_fv1.h:382
base_type::domain_type domain_type
domain type
Definition fract_pf_fv1.h:69
void set_orthofract_permeability(SmartPtr< CplUserData< number, dim > > user)
Definition fract_pf_fv1.h:196
void ass_dM_elem(LocalVector &d, const LocalVector &u, GridObject *elem, const position_type vCornerCoords[])
computes the mass part of the defect of a time-dependent problem
Definition fract_pf_fv1_impl.h:646
bool m_bCondensedFV
if to use the 'condensed' FV scvf ip's (corrently concerns only the bulk medium)
Definition fract_pf_fv1.h:321
MathVector< dim > m_Gravity
the gravity vector
Definition fract_pf_fv1.h:371
SmartPtr< CplUserData< number, dim > > m_spFractPermeabilityData
Definition fract_pf_fv1.h:358
bool m_isFracture
if the current subset is registered in the fracture manager
Definition fract_pf_fv1.h:374
void set_fract_permeability(SmartPtr< CplUserData< number, dim > > user)
Definition fract_pf_fv1.h:177
void bulk_prepare_element_loop(ReferenceObjectID roid, int si)
prepares the loop over the elements: the 'bulk' version
Definition fract_pf_fv1_impl.h:99
void ass_JM_elem(LocalMatrix &J, const LocalVector &u, GridObject *elem, const position_type vCornerCoords[])
computes the mass matrix of a time-dependent problem
Definition fract_pf_fv1_impl.h:660
void set_viscosity(number viscosity)
Definition fract_pf_fv1.h:126
DataImport< MathMatrix< dim, dim >, dim > m_imPermeability
permeability (constant per element)
Definition fract_pf_fv1.h:349
DimFV1Geometry< low_dim, dim > TFractFVGeom
FV geometry for the fractures.
Definition fract_pf_fv1.h:81
void fract_ass_dA_elem(LocalVector &d, const LocalVector &u, TElem *elem, const position_type vCornerCoords[])
computes the stiffness part of the local defect on a fracture element
Definition fract_pf_fv1_impl.h:387
void set_fract_manager(SmartPtr< fract_manager_type > fract_manager)
sets the fracture manager
Definition fract_pf_fv1.h:119
DataImport< number, dim > m_imFractPermeability
scalar permeability along the fracture (constant per element)
Definition fract_pf_fv1.h:353
size_t m_outerSideCo[maxFractSideCorners]
outer side corner idx -> elem. corner idx
Definition fract_pf_fv1.h:383
base_type::position_type position_type
position type
Definition fract_pf_fv1.h:72
void ass_rhs_elem(LocalVector &d, GridObject *elem, const position_type vCornerCoords[])
computes the right-hand side due to the gravitation and the mass sources
Definition fract_pf_fv1_impl.h:674
void register_loc_discr_func()
registers the local assembler functions for a given element
Definition fract_pf_fv1_impl.h:797
static const size_t maxFractSideCorners
max. number of corners of non-degenerated sides
Definition fract_pf_fv1.h:93
SmartPtr< T, FreePolicy > make_sp(T *inst)
Definition fract_pf_fv1.h:323
this_type * m_pThis
Definition fract_pf_fv1.h:325
RegisterLocalDiscr(this_type *pThis)
Definition fract_pf_fv1.h:324
void operator()(TElem &)
Definition fract_pf_fv1.h:326