3D specfem::assembly::mesh_impl::shape_functions

template<>
struct shape_functions<specfem::dimension::type::dim3>

3D shape functions and derivatives for spectral elements.

Computes and stores shape function values and derivatives at all GLL quadrature points for 3D hexahedral elements.

Subclassed by specfem::assembly::mesh< specfem::dimension::type::dim3 >

Public Types

using ShapeFunctionViewType = Kokkos::View<type_real****, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace>

Shape function view type.

Dimensions: [ngllz, nglly, ngllx, ngnod].

using DShapeFunctionViewType = Kokkos::View<type_real*****, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace>

Shape function derivative view type.

Dimensions: [ngllz, nglly, ngllx, ndim, ngnod].

Public Functions

inline shape_functions(const int &ngllz, const int &nglly, const int &ngllx, const int &ngnod)

Constructor with pre-allocated storage.

Allocates views but does not compute values.

shape_functions() = default

Default constructor.

shape_functions(const int ngllz, const int nglly, const int ngllx, const int ngnod, const specfem::assembly::mesh_impl::quadrature<specfem::dimension::type::dim3> &quadrature, const specfem::assembly::mesh_impl::control_nodes<specfem::dimension::type::dim3> control_nodes)

Constructor with immediate computation.

Computes shape functions and derivatives from quadrature points.

Public Members

int ngllz

Number of GLL points in z direction.

int nglly

Number of GLL points in y direction.

int ngllx

Number of GLL points in x direction.

int ngnod

Number of control nodes per element.

ShapeFunctionViewType shape3D

Device shape functions.

DShapeFunctionViewType dshape3D

Device derivatives.

ShapeFunctionViewType::HostMirror h_shape3D

Host shape functions.

DShapeFunctionViewType::HostMirror h_dshape3D

Host derivatives.

Public Static Attributes

static constexpr auto dimension_tag = specfem::dimension::type::dim3

Dimension tag.