|
SpECTRE
2021.08.02
|
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 = tmpl::list< BeamWidth, Material, IntegrationIntervals, AbsoluteTolerance, RelativeTolerance > |
Public Types inherited from Elasticity::Solutions::AnalyticSolution< 3, tmpl::list< Solutions::Registrars::HalfSpaceMirror > > | |
| using | registrars = tmpl::list< Solutions::Registrars::HalfSpaceMirror > |
| using | creatable_classes = Registration::registrants< registrars > |
Public Types inherited from AnalyticData< Dim, Registrars > | |
| using | registrars = Registrars |
| using | creatable_classes = Registration::registrants< registrars > |
Public Member Functions | |
| HalfSpaceMirror (const HalfSpaceMirror &) noexcept=default | |
| HalfSpaceMirror & | operator= (const HalfSpaceMirror &) noexcept=default |
| HalfSpaceMirror (HalfSpaceMirror &&) noexcept=default | |
| HalfSpaceMirror & | operator= (HalfSpaceMirror &&) noexcept=default |
| HalfSpaceMirror (double beam_width, constitutive_relation_type constitutive_relation, size_t integration_intervals=350, double absolute_tolerance=1e-12, double relative_tolerance=1e-10) noexcept | |
| double | beam_width () const noexcept |
| size_t | integration_intervals () const noexcept |
| double | absolute_tolerance () const noexcept |
| double | relative_tolerance () const noexcept |
| const constitutive_relation_type & | constitutive_relation () const noexcept override |
| A constitutive relation that represents the properties of the elastic material. More... | |
| template<typename DataType , typename... RequestedTags> | |
| tuples::TaggedTuple< RequestedTags... > | variables (const tnsr::I< DataType, 3 > &x, tmpl::list< RequestedTags... >) const noexcept |
| void | pup (PUP::er &p) noexcept override |
Public Member Functions inherited from Elasticity::Solutions::AnalyticSolution< 3, tmpl::list< Solutions::Registrars::HalfSpaceMirror > > | |
| tuples::TaggedTuple< RequestedTags... > | variables (const tnsr::I< DataType, Dim, Frame::Inertial > &x, tmpl::list< RequestedTags... >) const noexcept |
Public Member Functions inherited from AnalyticData< Dim, Registrars > | |
| template<typename DataType , typename... Tags> | |
| tuples::TaggedTuple< Tags... > | variables (const tnsr::I< DataType, Dim > &x, tmpl::list< Tags... >) const noexcept |
Retrieve a collection of tensor fields at spatial coordinate(s) x | |
| template<typename... Tags> | |
| tuples::TaggedTuple< Tags... > | variables (const tnsr::I< DataVector, Dim > &x, const Mesh< Dim > &mesh, const InverseJacobian< DataVector, Dim, Frame::Logical, Frame::Inertial > &inv_jacobian, tmpl::list< Tags... >) const noexcept |
Retrieve a collection of tensor fields at spatial coordinate(s) x More... | |
Static Public Attributes | |
| static constexpr Options::String | help |
Static Public Attributes inherited from AnalyticData< Dim, Registrars > | |
| static constexpr size_t | volume_dim = Dim |
The solution for a half-space mirror deformed by a laser beam.
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 \(+\infty\) 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 \(Y^{ijkl}\) (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 [106] with F = 1 and the time dependency dropped)
\begin{align} T^{zr} &= T^{rz} = 0 \\ T^{zz} &= p(r) = \frac{e^{-\frac{r^2}{r_0^2}}}{\pi r_0^2}\text{.} \end{align}
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
\begin{align} \xi_{r} &= \frac{1}{2 \mu} \int_0^{\infty} dk J_1(kr)e^{(-kz)}\left(1 - \frac{\lambda + 2\mu}{\lambda + \mu} + kz \right) \tilde{p}(k) \\ \xi_{\phi} &= 0 \\ \xi_{z} &= \frac{1}{2 \mu} \int_0^{\infty} dk J_0(kr)e^{(-kz)}\left(1 + \frac{\mu}{\lambda + \mu} + kz \right) \tilde{p}(k) \end{align}
and the strain
\begin{align} \Theta &= \frac{1}{2 \mu} \int_0^{\infty} dk J_0(kr) k e^{(-kz)}\left(\frac{-2\mu}{\lambda + \mu}\right) \tilde{p}(k) \\ S_{rr} &= \Theta - S_{\phi\phi} - S_{zz} \\ S_{\phi\phi} &= \frac{\xi_{r}}{r} \\ S_{(rz)} &= -\frac{1}{2 \mu} \int_0^{\infty} dk J_1(kr) k e^{(-kz)}\left(kz \right) \tilde{p}(k) \\ S_{zz} &= \frac{1}{2 \mu} \int_0^{\infty} dk J_0(kr) k e^{(-kz)}\left(-\frac{\mu}{\lambda + \mu} - kz \right) \tilde{p}(k) \end{align}
(see Eqs. (11 a) - (11 c) and (13 a) - (13 e), with (13 c) swapped in favor of (12 c) in [78]), where \(\tilde{p}(k)= \frac{1}{2\pi} e^{-(\frac{kr_0}{2})^2}\) is the Hankel-Transform of the lasers intensity profile and \( \Theta = \mathrm{Tr}(S)\) the materials expansion.
|
inlineoverridevirtualnoexcept |
A constitutive relation that represents the properties of the elastic material.
Implements Elasticity::AnalyticData::AnalyticData< Dim, Registrars >.
|
staticconstexpr |