19 #ifndef PISM_DIRICHLETDATA_H
20 #define PISM_DIRICHLETDATA_H
22 #include "pism/util/fem/FEM.hh"
23 #include "pism/util/petscwrappers/Mat.hh"
24 #include "pism/util/Vector2d.hh"
66 void fix_residual(
double const *
const *
const x_global,
double **r_global);
This class represents a 2D vector field (such as ice velocity) at a certain grid point.
Abstract class for reading, writing, allocating, and accessing a DA-based PETSc Vec (2D and 3D fields...
void enforce_homogeneous(const Element2 &element, double *x_e)
void fix_residual(double const *const *const x_global, double **r_global)
void fix_residual_homogeneous(double **r_global)
const array::Scalar * m_values
DirichletData_Scalar(const array::Scalar *indices, const array::Scalar *values, double weight=1.0)
void enforce(const Element2 &element, double *x_e)
void fix_residual(Vector2d const *const *const x_global, Vector2d **r_global)
DirichletData_Vector(const array::Scalar *indices, const array::Vector *values, double weight)
void enforce(const Element2 &element, Vector2d *x_e)
void fix_residual_homogeneous(Vector2d **r)
void enforce_homogeneous(const Element2 &element, Vector2d *x_e)
const array::Vector * m_values
double m_indices_e[q1::n_chi]
void finish(const array::Array *values)
void init(const array::Scalar *indices, const array::Array *values, double weight=1.0)
const array::Scalar * m_indices
void constrain(Element2 &element)
Constrain element, i.e. ensure that quadratures do not contribute to Dirichlet nodes by marking corre...
static int weight(int M_ij, int M_n, double h_ij, double h_n)