SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
Elasticity::BoundaryConditions::LaserBeam Class Reference

A laser beam with Gaussian profile normally incident to the surface. More...

#include <LaserBeam.hpp>

Classes

struct  BeamWidth

Public Types

using options = tmpl::list<BeamWidth>
using argument_tags
using volume_tags = tmpl::list<>
using argument_tags_linearized = tmpl::list<>
using volume_tags_linearized = tmpl::list<>

Public Member Functions

 LaserBeam (const LaserBeam &)=default
LaserBeamoperator= (const LaserBeam &)=default
 LaserBeam (LaserBeam &&)=default
LaserBeamoperator= (LaserBeam &&)=default
std::unique_ptr< domain::BoundaryConditions::BoundaryConditionget_clone () const override
 LaserBeam (double beam_width)
double beam_width () const
std::vector< elliptic::BoundaryConditionTypeboundary_condition_types () const override
void apply (gsl::not_null< tnsr::I< DataVector, 3 > * > displacement, gsl::not_null< tnsr::I< DataVector, 3 > * > n_dot_minus_stress, const tnsr::iJ< DataVector, 3 > &deriv_displacement, const tnsr::I< DataVector, 3 > &x, const tnsr::i< DataVector, 3 > &face_normal) const
void pup (PUP::er &p) override
Public Member Functions inherited from elliptic::BoundaryConditions::BoundaryCondition< 3 >
 BoundaryCondition (const BoundaryCondition &)=default
 BoundaryCondition (BoundaryCondition &&)=default
BoundaryConditionoperator= (const BoundaryCondition &)=default
BoundaryConditionoperator= (BoundaryCondition &&)=default
Public Member Functions inherited from domain::BoundaryConditions::BoundaryCondition
 BoundaryCondition (BoundaryCondition &&)=default
BoundaryConditionoperator= (BoundaryCondition &&)=default
 BoundaryCondition (const BoundaryCondition &)=default
BoundaryConditionoperator= (const BoundaryCondition &)=default
 BoundaryCondition (CkMigrateMessage *const msg)
 WRAPPED_PUPable_abstract (BoundaryCondition)

Static Public Member Functions

static void apply_linearized (gsl::not_null< tnsr::I< DataVector, 3 > * > displacement, gsl::not_null< tnsr::I< DataVector, 3 > * > n_dot_minus_stress, const tnsr::iJ< DataVector, 3 > &deriv_displacement)

Static Public Attributes

static constexpr Options::String help
Static Public Attributes inherited from elliptic::BoundaryConditions::BoundaryCondition< 3 >
static constexpr size_t volume_dim

Detailed Description

A laser beam with Gaussian profile normally incident to the surface.

This boundary condition represents a laser beam with Gaussian profile that exerts pressure normal to the surface of a reflecting material. The pressure we are considering here is

\begin{align}n_i T^{ij} = -n^j \frac{e^{-\frac{r^2}{r_0^2}}}{\pi r_0^2} \end{align}

where \(n_i\) is the unit normal pointing out of the surface, \(r\) is the coordinate distance from the origin in the plane perpendicular to \(n_i\) and \(r_0\) is the "beam width" parameter. The pressure profile and the angle of incidence can be generalized in future work. Note that we follow the convention of [139], [137], and [211] in defining the beam width, and other publications may include a factor of \(\sqrt{2}\) in its definition.

This boundary condition is used to simulate thermal noise induced in a mirror by the laser, as detailed for instance in [139], [137], and [211]. See also Elasticity::Solutions::HalfSpaceMirror for an analytic solution that involves this boundary condition.

Member Typedef Documentation

◆ argument_tags

using Elasticity::BoundaryConditions::LaserBeam::argument_tags
Initial value:
tmpl::list<domain::Tags::Coordinates<3, Frame::Inertial>,
The normalized (co)vector represented by Tag.
Definition Magnitude.hpp:123
The unnormalized face normal one form.
Definition FaceNormal.hpp:129

Member Function Documentation

◆ boundary_condition_types()

std::vector< elliptic::BoundaryConditionType > Elasticity::BoundaryConditions::LaserBeam::boundary_condition_types ( ) const
inlineoverridevirtual

◆ get_clone()

std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > Elasticity::BoundaryConditions::LaserBeam::get_clone ( ) const
inlineoverridevirtual

Member Data Documentation

◆ help

Options::String Elasticity::BoundaryConditions::LaserBeam::help
staticconstexpr
Initial value:
=
"A laser beam with Gaussian profile normally incident to the surface."

The documentation for this class was generated from the following file:
  • src/Elliptic/Systems/Elasticity/BoundaryConditions/LaserBeam.hpp