PISM, A Parallel Ice Sheet Model  stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
pism::fem::Element2 Class Reference

#include <Element.hh>

+ Inheritance diagram for pism::fem::Element2:

Public Member Functions

void reset (int i, int j)
 Initialize the Element to element (i, j) for the purposes of inserting into global residual and Jacobian arrays. More...
 
void local_to_global (unsigned int k, int &i, int &j) const
 Convert a local degree of freedom index k to a global degree of freedom index (i,j). More...
 
Vector2d normal (unsigned int side) const
 
unsigned int n_sides () const
 
double side_length (unsigned int side) const
 
template<typename T >
void evaluate (const T *x, T *vals, T *dx, T *dy)
 Given nodal values, compute the values and partial derivatives at the quadrature points. More...
 
void nodal_values (const array::Scalar &x_global, int *result) const
 Get nodal values of an integer mask. More...
 
template<typename T >
void nodal_values (T const *const *x_global, T *result) const
 Extract nodal values for the element (i,j) from global array x_global into the element-local array result. More...
 
template<typename T >
void add_contribution (const T *local, T **y_global) const
 Add the values of element-local contributions y to the global vector y_global. More...
 
template<typename T >
void evaluate (const T *x, T *result) const
 Given nodal values, compute the values at quadrature points. More...
 
void add_contribution (const double *K, Mat J) const
 Add Jacobian contributions. More...
 
void mark_row_invalid (unsigned int k)
 Mark that the row corresponding to local degree of freedom k should not be updated when inserting into the global residual or Jacobian arrays. More...
 
void mark_col_invalid (unsigned int k)
 Mark that the column corresponding to local degree of freedom k should not be updated when inserting into the global Jacobian arrays. More...
 
- Public Member Functions inherited from pism::fem::Element
 ~Element ()=default
 
int n_chi () const
 
const Germchi (unsigned int q, unsigned int k) const
 
int n_pts () const
 Number of quadrature points. More...
 
double weight (unsigned int q) const
 Weight of the quadrature point q More...
 
template<typename T >
void evaluate (const T *x, T *result) const
 Given nodal values, compute the values at quadrature points. More...
 

Protected Member Functions

 Element2 (const Grid &grid, int Nq, int n_chi, int block_size)
 
 Element2 (const DMDALocalInfo &grid_info, int Nq, int n_chi, int block_size)
 
- Protected Member Functions inherited from pism::fem::Element
 Element (const Grid &grid, int Nq, int n_chi, int block_size)
 
 Element (const DMDALocalInfo &grid_info, int Nq, int n_chi, int block_size)
 
void add_contribution (const double *K, Mat J) const
 Add Jacobian contributions. More...
 
void mark_row_invalid (unsigned int k)
 Mark that the row corresponding to local degree of freedom k should not be updated when inserting into the global residual or Jacobian arrays. More...
 
void mark_col_invalid (unsigned int k)
 Mark that the column corresponding to local degree of freedom k should not be updated when inserting into the global Jacobian arrays. More...
 
void initialize (const double J[3][3], ShapeFunction f, unsigned int n_chi, const std::vector< QuadPoint > &points, const std::vector< double > &W)
 Initialize shape function values and quadrature weights of a 2D physical element. More...
 

Protected Attributes

std::vector< Vector2dm_normals
 
std::vector< double > m_side_lengths
 
- Protected Attributes inherited from pism::fem::Element
DMDALocalInfo m_grid
 
std::vector< int > m_i_offset
 
std::vector< int > m_j_offset
 
const unsigned int m_n_chi
 
int m_i
 Indices of the current element. More...
 
int m_j
 
const unsigned int m_Nq
 Number of quadrature points. More...
 
const int m_block_size
 
std::vector< Germm_germs
 
std::vector< MatStencil > m_row
 Stencils for updating entries of the Jacobian matrix. More...
 
std::vector< MatStencil > m_col
 
std::vector< double > m_weights
 Quadrature weights for a particular physical element. More...
 

Additional Inherited Members

- Protected Types inherited from pism::fem::Element
typedef Germ(* ShapeFunction) (unsigned int k, const QuadPoint &p)
 
- Static Protected Attributes inherited from pism::fem::Element
static const int m_invalid_dof = -1073741824
 

Detailed Description

Definition at line 165 of file Element.hh.


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