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 | Private Attributes | List of all members
pism::fem::Q1Element3 Class Reference

3D Q1 element More...

#include <Element.hh>

+ Inheritance diagram for pism::fem::Q1Element3:

Public Member Functions

 Q1Element3 (const DMDALocalInfo &grid, const Quadrature &quadrature, double dx, double dy, double x_min, double y_min)
 
 Q1Element3 (const Grid &grid, const Quadrature &quadrature)
 
void reset (int i, int j, int k, const double *z)
 
double x (int n) const
 
double y (int n) const
 
double z (int n) const
 
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::Element3
template<typename T >
void evaluate (const T *x, T *vals, T *dx, T *dy, T *dz) const
 Given nodal values, compute the values and partial derivatives at the quadrature points. More...
 
GlobalIndex local_to_global (int i, int j, int k, unsigned int n) const
 
GlobalIndex local_to_global (unsigned int n) const
 
template<typename T >
void nodal_values (T const *const *const *x_global, T *result) const
 Extract nodal values for the element (i,j,k) 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...
 
- 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...
 

Private Attributes

double m_dx
 
double m_dy
 
double m_x_min
 
double m_y_min
 
double m_z_nodal [q13d::n_chi]
 
std::vector< Germm_chi
 
std::vector< QuadPointm_points
 
std::vector< double > m_w
 

Additional Inherited Members

- Protected Types inherited from pism::fem::Element
typedef Germ(* ShapeFunction) (unsigned int k, const QuadPoint &p)
 
- Protected Member Functions inherited from pism::fem::Element3
 Element3 (const DMDALocalInfo &grid_info, int Nq, int n_chi, int block_size)
 
 Element3 (const Grid &grid, 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 inherited from pism::fem::Element3
std::vector< int > m_k_offset
 
int m_k
 
- 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...
 
- Static Protected Attributes inherited from pism::fem::Element
static const int m_invalid_dof = -1073741824
 

Detailed Description

3D Q1 element

Definition at line 351 of file Element.hh.


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