SpECTRE
v2025.03.17
|
A state of pure bending of an elastic beam in 2D. More...
#include <BentBeam.hpp>
Classes | |
struct | BendingMoment |
struct | Height |
struct | Length |
struct | Material |
Public Types | |
using | constitutive_relation_type = Elasticity::ConstitutiveRelations::IsotropicHomogeneous< 2 > |
using | options = tmpl::list< Length, Height, BendingMoment, Material > |
Public Member Functions | |
BentBeam (const BentBeam &)=default | |
BentBeam & | operator= (const BentBeam &)=default |
BentBeam (BentBeam &&)=default | |
BentBeam & | operator= (BentBeam &&)=default |
std::unique_ptr< elliptic::analytic_data::AnalyticSolution > | get_clone () const override |
BentBeam (double length, double height, double bending_moment, constitutive_relation_type constitutive_relation) | |
double | length () const |
double | height () const |
double | bending_moment () const |
const constitutive_relation_type & | constitutive_relation () const |
double | potential_energy () const |
Return potential energy integrated over the whole beam material. | |
template<typename DataType , typename... RequestedTags> | |
tuples::TaggedTuple< RequestedTags... > | variables (const tnsr::I< DataType, 2 > &x, tmpl::list< RequestedTags... >) const |
void | pup (PUP::er &p) override |
NOLINTNEXTLINE(google-runtime-references) | |
virtual std::unique_ptr< AnalyticSolution > | get_clone () const =0 |
Static Public Attributes | |
static constexpr Options::String | help |
A state of pure bending of an elastic beam in 2D.
This solution describes a 2D slice through an elastic beam of length \(L\) and height \(H\), centered around (0, 0), that is subject to a bending moment \(M=\int T^{xx}y\mathrm{d}y\) (see e.g. [194], Eq. 11.41c for a bending moment in 1D). The beam material is characterized by an isotropic and homogeneous constitutive relation \(Y^{ijkl}\) in the plane-stress approximation (see Elasticity::ConstitutiveRelations::IsotropicHomogeneous
). In this scenario, no body-forces \(f_\mathrm{ext}^j\) act on the material, so the Elasticity equations reduce to \(\nabla_i T^{ij}=0\), but the bending moment \(M\) generates the stress
\begin{align} T^{xx} &= \frac{12 M}{H^3} y \\ T^{xy} &= 0 = T^{yy} \text{.} \end{align}
By fixing the rigid-body motions to
\[ \xi^x(0,y)=0 \quad \text{and} \quad \xi^y\left(\pm \frac{L}{2},0\right)=0 \]
we find that this stress is produced by the displacement field
\begin{align} \xi^x&=-\frac{12 M}{EH^3}xy \\ \xi^y&=\frac{6 M}{EH^3}\left(x^2+\nu y^2-\frac{L^2}{4}\right) \end{align}
in terms of the Young's modulus \(E\) and the Poisson ration \(\nu\) of the material. The corresponding strain \(S_{ij}=\partial_{(i}\xi_{j)}\) is
\begin{align} S_{xx} &= -\frac{12 M}{EH^3} y \\ S_{yy} &= \frac{12 M}{EH^3} \nu y \\ S_{xy} &= S_{yx} = 0 \end{align}
and the potential energy stored in the entire infinitesimal slice is
\[ \int_{-L/2}^{L/2} \int_{-H/2}^{H/2} U dy\,dx = \frac{6M^2}{EH^3}L \text{.} \]
|
inlineoverridevirtual |
Implements elliptic::analytic_data::AnalyticSolution.
|
staticconstexpr |