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
 

Additional Inherited Members

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

Member Function Documentation

◆ 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: