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

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 = implementation defined
 

Public Member Functions

 BentBeam (const BentBeam &)=default
 
BentBeamoperator= (const BentBeam &)=default
 
 BentBeam (BentBeam &&)=default
 
BentBeamoperator= (BentBeam &&)=default
 
std::unique_ptr< elliptic::analytic_data::AnalyticSolutionget_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_typeconstitutive_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< AnalyticSolutionget_clone () const =0
 

Static Public Attributes

static constexpr Options::String help
 

Detailed Description

A state of pure bending of an elastic beam in 2D.

Details

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=Txxydy (see e.g. , Eq. 11.41c for a bending moment in 1D). The beam material is characterized by an isotropic and homogeneous constitutive relation Yijkl in the plane-stress approximation (see Elasticity::ConstitutiveRelations::IsotropicHomogeneous). In this scenario, no body-forces fextj act on the material, so the Elasticity equations reduce to iTij=0, but the bending moment M generates the stress

(1)Txx=12MH3y(2)Txy=0=Tyy.

By fixing the rigid-body motions to

ξx(0,y)=0andξy(±L2,0)=0

we find that this stress is produced by the displacement field

(3)ξx=12MEH3xy(4)ξy=6MEH3(x2+νy2L24)

in terms of the Young's modulus E and the Poisson ration ν of the material. The corresponding strain Sij=(iξj) is

(5)Sxx=12MEH3y(6)Syy=12MEH3νy(7)Sxy=Syx=0

and the potential energy stored in the entire infinitesimal slice is

L/2L/2H/2H/2Udydx=6M2EH3L.

Member Function Documentation

◆ get_clone()

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

Member Data Documentation

◆ help

constexpr Options::String Elasticity::Solutions::BentBeam::help
staticconstexpr
Initial value:
{
"A 2D slice through an elastic beam which is subject to a bending "
"moment. The bending moment is applied along the length of the beam, "
"i.e. the x-axis, so that the beam's left and right ends are bent "
"towards the positive y-axis. It is measured in units of force."}

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