Plugins
Loading...
Searching...
No Matches
richards_fs_height.h
Go to the documentation of this file.
1//
2// Created by julian on 2/26/26.
3//
4
5#ifndef UG4_RICHARDS_FS_HEIGHT_H
6#define UG4_RICHARDS_FS_HEIGHT_H
7#include "../../level_set_pos.h"
9namespace ug {
10namespace d3f {
11
20template <typename TGridFunction>
22: public StdDependentUserData<RichardsFreeSurfaceHeight<TGridFunction>, number, TGridFunction::dim> {
23
24public:
25 typedef TGridFunction gf_type;
26 static const int dim = gf_type::dim;
29 typedef typename gf_type::domain_type domain_type;
30 typedef typename domain_type::position_accessor_type pos_acc_type;
31
34
37
40
43
46
49
58 const char * subset = "top",
59 const char * cmp = "p"
60 );
61
67 void reinit();
68
70 virtual bool continuous () const {return true;}
71
73 virtual bool requires_grid_fct () const {return true;}
74
80 template <int refDim>
82 (
83 number vValue[],
84 const MathVector<dim> vGlobIP[],
86 int si,
87 GridObject* elem,
88 const MathVector<dim> vCornerCoords[],
89 const MathVector<refDim> vLocIP[],
90 const size_t nip,
91 LocalVector* u,
92 bool bDeriv,
93 int s,
94 std::vector<std::vector<number> > vvvDeriv[],
95 const MathMatrix<refDim, dim>* vJT = NULL
96 );
97private:
100 {
103 bool valid;
104
106 : xy (the_xy), valid(false) {};
107 };
108 std::vector<t_pnt_data> m_measurement_points;
111 const char * m_cmp;
117};
118
119
120
121
122}
123}
124
126#endif //UG4_USERDATA_VAL_SURF_PROJ_H
parameterString s
Definition Biogas.lua:2
int subset() const
number time() const
Definition level_set_pos.h:48
Computes and stores the height of the free water surface (e.g., where pressure is 0) for the Richards...
Definition richards_fs_height.h:22
SmartPtr< gf_type > m_spGf
Definition richards_fs_height.h:110
SubsetGroup m_SsGrp
Definition richards_fs_height.h:109
glob_userdata_type m_glob_userdata
Definition richards_fs_height.h:112
virtual bool continuous() const
We consider here the height as a continuous field (although it is not completely so)
Definition richards_fs_height.h:70
GlobalGridFunctionNumberData< TGridFunction > glob_userdata_type
type of the class for getting the values of a grid function by a global coordinate
Definition richards_fs_height.h:36
Attachment< size_t > num_a_type
type of the attachment numbering the vertices
Definition richards_fs_height.h:39
const char * m_cmp
Definition richards_fs_height.h:111
RichardsFreeSurfaceHeight< gf_type > this_type
Definition richards_fs_height.h:27
Attachment< number > val_a_type
type of the attachment numbering the vertices
Definition richards_fs_height.h:42
StdDependentUserData< this_type, number, dim > base_type
Definition richards_fs_height.h:28
virtual bool requires_grid_fct() const
Returns true to get the grid element in the evaluation routine.
Definition richards_fs_height.h:73
val_a_type m_a_vrt_val
Definition richards_fs_height.h:114
void reinit()
Reinitializes the measurer.
Definition richards_fs_height_impl.h:45
num_a_type m_a_vrt_num
Definition richards_fs_height.h:113
void eval_and_deriv(number vValue[], const MathVector< dim > vGlobIP[], number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< refDim > vLocIP[], const size_t nip, LocalVector *u, bool bDeriv, int s, std::vector< std::vector< number > > vvvDeriv[], const MathMatrix< refDim, dim > *vJT=NULL)
Evaluates the free surface height at integration points of a grid element.
Definition richards_fs_height_impl.h:152
std::vector< t_pnt_data > m_measurement_points
Definition richards_fs_height.h:108
TGridFunction gf_type
Definition richards_fs_height.h:25
LSPositionZ< TGridFunction > measurer_type
type of free surface measurer
Definition richards_fs_height.h:33
Grid::VertexAttachmentAccessor< num_a_type > num_aa_type
type of the attachment accessor for the numbering attachment
Definition richards_fs_height.h:45
measurer_type m_sp_ls_pos_z
Definition richards_fs_height.h:116
domain_type::position_accessor_type pos_acc_type
Definition richards_fs_height.h:30
Grid::VertexAttachmentAccessor< val_a_type > val_aa_type
type of the attachment accessor for the value attachment
Definition richards_fs_height.h:48
SmartPtr< std::vector< number > > m_sp_vrt_val
Definition richards_fs_height.h:115
static const int dim
Definition richards_fs_height.h:26
gf_type::domain_type domain_type
Definition richards_fs_height.h:29
double number
Internal structure to hold cached measurement data for a specific vertex point.
Definition richards_fs_height.h:100
number z
computed value of the z-coordiate
Definition richards_fs_height.h:102
t_pnt_data(MathVector< dim-1 > &the_xy)
Definition richards_fs_height.h:105
bool valid
if not computed or the level set is not covered by the top surface
Definition richards_fs_height.h:103
MathVector< dim-1 > xy
low-dim coordinate of the point
Definition richards_fs_height.h:101