specfem::point::displacement

template<typename Tags>
using specfem::point::displacement = impl::displacement<Tags::dimension_tag, Tags::medium_tag, Tags::using_simd>

specfem::point::velocity

template<typename Tags>
using specfem::point::velocity = impl::velocity<Tags::dimension_tag, Tags::medium_tag, Tags::using_simd>

specfem::point::acceleration

template<typename Tags>
using specfem::point::acceleration = impl::acceleration<Tags::dimension_tag, Tags::medium_tag, Tags::using_simd>

Point acceleration field accessor for spectral element computations.

This class provides a specialized interface for accessing and manipulating acceleration field data at individual points within spectral elements. It inherits all functionality from the base field implementation while being specifically typed for acceleration data.

The acceleration class is commonly used in time-domain wave propagation simulations where acceleration values need to be computed, stored, and accessed at quadrature points during the assembly process.

// Example: Creating 2D elastic acceleration field accessor
using AccelField = specfem::point::acceleration<
    specfem::tags::Tags<specfem::element::dimension_tag::dim2,
                        specfem::element::medium_tag::elastic,
                        false>>;  // No SIMD

// Initialize with zero acceleration
AccelField accel(0.0);

// Set acceleration components
accel(0) = 9.81;  // x-component acceleration
accel(1) = 0.0;   // z-component acceleration

// Use in assembly operations
specfem::assembly::load_on_device(point_index, field_container, accel);

// Example: Using acceleration in time integration scheme
AccelField acceleration;
VelocityField velocity;
DisplacementField displacement;

// Load current values
specfem::assembly::load_on_device(index, fields, acceleration, velocity,
displacement);

// Time integration (Newmark scheme)
for (int icomp = 0; icomp < AccelField::components; ++icomp) {
  velocity(icomp) += dt * acceleration(icomp);
  displacement(icomp) += dt * velocity(icomp) + 0.5 * dt * dt *
acceleration(icomp);
}

// Store updated values
specfem::assembly::store_on_device(index, fields, velocity, displacement);

See also

specfem::point::velocity for velocity field accessor

See also

specfem::point::displacement for displacement field accessor

See also

specfem::point::mass_inverse for inverse mass matrix field accessor

Template Parameters:

Tags – The tags for the element where the quadrature point is located

specfem::point::mass_inverse

template<typename Tags>
using specfem::point::mass_inverse = impl::mass_inverse<Tags::dimension_tag, Tags::medium_tag, Tags::using_simd>

Implementation Details