2D Elastic Isotropic Cosserat Coupled Stress Computation

template<typename T, typename PointPropertiesType, typename PointStressType, typename PointAccelerationType>
void impl_compute_cosserat_couple_stress(const std::true_type, const std::integral_constant<specfem::element::dimension_tag, specfem::element::dimension_tag::dim2>, const std::integral_constant<specfem::element::medium_tag, specfem::element::medium_tag::elastic_psv_t>, const std::integral_constant<specfem::element::property_tag, specfem::element::property_tag::isotropic_cosserat>, const PointPropertiesType &point_properties, const T factor, const PointStressType &point_stress, PointAccelerationType &acceleration)

Compute couple stress contribution for 2D elastic isotropic Cosserat media.

Implements moment equilibrium equation for micropolar continuum with rotational degrees of freedom. Contributes to the spin component of the acceleration scratch view from stress tensor asymmetry.

Moment equilibrium equation: \( j\ddot{\phi}_y = (\sigma_{xz} - \sigma_{zx}) \cdot w_{iz} \cdot w_{ix} \cdot J \)

Note

The caller (epilogue) applies a global sign negation when reading from the scatter accumulator, so this function uses += (positive sign). The final contribution to the global acceleration field is -(sigma_xz - sigma_zx)*factor, matching the stiffness sign convention.

Parameters:
  • point_properties – Cosserat material properties

  • factor – Integration factor w(iz)*w(ix)*J for this GLL point

  • point_stress – Physical stress tensor at this GLL point

  • acceleration[in, out] – Acceleration delta (rotational component modified)