SpECTRE  v2021.12.06
Elasticity::BoundaryConditions::LaserBeam< Registrars > Class Template Reference

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

#include <LaserBeam.hpp>

## 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

void pup (PUP::er &p) override

Public Member Functions inherited from elliptic::BoundaryConditions::BoundaryCondition< 3, tmpl::list< Registrars::LaserBeam > >
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)

virtual auto get_clone () const -> std::unique_ptr< BoundaryCondition >=0

Public Types inherited from elliptic::BoundaryConditions::BoundaryCondition< 3, tmpl::list< Registrars::LaserBeam > >
using registrars = tmpl::list< Registrars::LaserBeam >

using creatable_classes = Registration::registrants< registrars >

Static Public Attributes inherited from elliptic::BoundaryConditions::BoundaryCondition< 3, tmpl::list< Registrars::LaserBeam > >
static constexpr size_t volume_dim

## Detailed Description

template<typename Registrars = tmpl::list<Registrars::LaserBeam>>
class Elasticity::BoundaryConditions::LaserBeam< Registrars >

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 [80] and [79] in defining the beam width, and other publications may include a 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 [80] and [79]. See also Elasticity::Solutions::HalfSpaceMirror for an analytic solution that involves this boundary condition.

## ◆ get_clone()

template<typename Registrars = tmpl::list<Registrars::LaserBeam>>
 std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > Elasticity::BoundaryConditions::LaserBeam< Registrars >::get_clone ( ) const
inlineoverridevirtual

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