SpECTRE  v2025.03.17
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Elasticity::Solutions::HalfSpaceMirror Class Reference

The solution for a half-space mirror deformed by a laser beam. More...

#include <HalfSpaceMirror.hpp>

Classes

struct  AbsoluteTolerance
 
struct  BeamWidth
 
struct  IntegrationIntervals
 
struct  Material
 
struct  RelativeTolerance
 

Public Types

using constitutive_relation_type = Elasticity::ConstitutiveRelations::IsotropicHomogeneous< 3 >
 
using options = implementation defined
 

Public Member Functions

 HalfSpaceMirror (const HalfSpaceMirror &)=default
 
HalfSpaceMirroroperator= (const HalfSpaceMirror &)=default
 
 HalfSpaceMirror (HalfSpaceMirror &&)=default
 
HalfSpaceMirroroperator= (HalfSpaceMirror &&)=default
 
std::unique_ptr< elliptic::analytic_data::AnalyticSolutionget_clone () const override
 
 HalfSpaceMirror (double beam_width, constitutive_relation_type constitutive_relation, size_t integration_intervals=350, double absolute_tolerance=1e-12, double relative_tolerance=1e-10)
 
double beam_width () const
 
size_t integration_intervals () const
 
double absolute_tolerance () const
 
double relative_tolerance () const
 
const constitutive_relation_typeconstitutive_relation () const
 
template<typename DataType , typename... RequestedTags>
tuples::TaggedTuple< RequestedTags... > variables (const tnsr::I< DataType, 3 > &x, tmpl::list< RequestedTags... >) const
 
void pup (PUP::er &p) override
 NOLINTNEXTLINE(google-runtime-references)
 
virtual std::unique_ptr< AnalyticSolutionget_clone () const =0
 

Static Public Attributes

static constexpr Options::String help
 

Detailed Description

The solution for a half-space mirror deformed by a laser beam.

Details

This solution is mapping (via the fluctuation dissipation theorem) thermal noise to an elasticity problem where a normally incident and axisymmetric laser beam with a Gaussian beam profile acts on the face of a semi-infinite mirror. Here we assume the face to be at z=0 and the material to extend to + in the z-direction as well as for the mirror diameter to be comparatively large to the beam width. The mirror material is characterized by an isotropic homogeneous constitutive relation Yijkl (see Elasticity::ConstitutiveRelations::IsotropicHomogeneous). In this scenario, the auxiliary elastic problem has an applied pressure distribution equal to the laser beam intensity profile p(r) (see Eq. (11.94) and Eq. (11.95) in with F = 1 and the time dependency dropped)

(1)Tzr=Trz=0(2)Tzz=p(r)=er2r02πr02.

in the form of a Neumann boundary condition to the face of the mirror. We find that this stress in cylinder coordinates is produced by the displacement field

(3)ξr=12μ0dkJ1(kr)e(kz)(1λ+2μλ+μ+kz)p~(k)(4)ξϕ=0(5)ξz=12μ0dkJ0(kr)e(kz)(1+μλ+μ+kz)p~(k)

and the strain

(6)Θ=12μ0dkJ0(kr)ke(kz)(2μλ+μ)p~(k)(7)Srr=ΘSϕϕSzz(8)Sϕϕ=ξrr(9)S(rz)=12μ0dkJ1(kr)ke(kz)(kz)p~(k)(10)Szz=12μ0dkJ0(kr)ke(kz)(μλ+μkz)p~(k)

(see Eqs. (11 a) - (11 c) and (13 a) - (13 e), with (13 c) swapped in favor of (12 c) in ), where p~(k)=12πe(kr02)2 is the Hankel-Transform of the lasers intensity profile and Θ=Tr(S) the materials expansion.

Member Function Documentation

◆ get_clone()

std::unique_ptr< elliptic::analytic_data::AnalyticSolution > Elasticity::Solutions::HalfSpaceMirror::get_clone ( ) const
inlineoverridevirtual

Member Data Documentation

◆ help

constexpr Options::String Elasticity::Solutions::HalfSpaceMirror::help
staticconstexpr
Initial value:
{
"A semi-infinite mirror on which a laser introduces stress perpendicular "
"to the mirrors surface."}

The documentation for this class was generated from the following file: