RobWorkProject  23.9.11-
Public Member Functions | List of all members
BeamGeometry Class Referenceabstract

Base class for discrete beam geometries. More...

#include <BeamGeometry.hpp>

Inherited by BeamGeometryCuboid.

Public Member Functions

 BeamGeometry (double L, const std::vector< double > &Exvec, const std::vector< double > &vxvec, const std::vector< double > &rhovec, const rw::math::Transform3D<> &wTb, const rw::math::Vector3D<> &G)
 Constructor for the BeamGeometry class. More...
 
void setTransform (const rw::math::Transform3D<> &T)
 Sets the homogeneous transform of the beam. More...
 
rw::math::Transform3D getTransform (void) const
 Retrieves the world to beam base transform of the beam. More...
 
void setG (const rw::math::Vector3D<> &G)
 sets the directional vector of gravity More...
 
rw::math::Vector3D getG (void) const
 retrieves the directional vector of gravity More...
 
Methods for retrieving material parameters
double Ex (const int i) const
 returns the value of Young's modulus at x = i * h More...
 
double vx (const int i) const
 returns the value of Poisson's ratio at x = i * h More...
 
double rho (const int i) const
 returns the value of the mass density at x = i * h More...
 
double kappa (const int i) const
 returns the kappa coefficient at x = i * h More...
 
double g1 (void) const
 returns the x-component of vector of gravity for the current configuration of the beam More...
 
double g2 (void) const
 returns the y-component of vector of gravity for the current configuration of the beam More...
 

Integrals to be evaluate by derived classes

virtual double b0 (const int i) const =0
 Evaluate the \(b_0\) integral. More...
 
virtual double b1 (const int i) const =0
 Evaluate the \(b_1\) integral. More...
 
virtual double c2 (const int i) const =0
 Evaluate the \( c_2 \) integral. More...
 
virtual double c3 (const int i) const =0
 Evaluate the \( c_3 \) integral. More...
 
virtual double c4 (const int i) const =0
 Evaluate the \( c_4 \) integral. More...
 
virtual double B0 (const int i) const =0
 evaluate the \( B_0 \) constant More...
 
double get_a (void) const
 return left boundary of domain More...
 
double get_b (void) const
 return right boundary of domain More...
 
double get_h (void) const
 return stepsize More...
 
double getL (void) const
 return length of beam More...
 
int getM (void) const
 return number of cross sections in beam More...
 
std::ostream & operator<< (std::ostream &out, const BeamGeometry &obj)
 

Detailed Description

Base class for discrete beam geometries.

Constructor & Destructor Documentation

◆ BeamGeometry()

BeamGeometry ( double  L,
const std::vector< double > &  Exvec,
const std::vector< double > &  vxvec,
const std::vector< double > &  rhovec,
const rw::math::Transform3D<> &  wTb,
const rw::math::Vector3D<> &  G 
)

Constructor for the BeamGeometry class.

Note
For a Mod Russel beam in a typical coordinate frame, the vector of gravitiy G should be defined as to make the gravitational potential energy increase for increased values of y, e.g. \( G=(0.0, 9.82, 0.0) \)
Parameters
Llength of object
Exvecvector of Young's modulus for each cross beam cros section, in MPa
vxvecvector of Poisson's ratio for each cross beam cros section
rhovecvector of mass density for each cross beam cros section, in kg/mm^3
wTbworld to base of beam transform
Gvector of gravity, m/s^2

Member Function Documentation

◆ b0()

virtual double b0 ( const int  i) const
pure virtual

Evaluate the \(b_0\) integral.

Evaluate the \(b_0\) integral, defined as

\[ b_0 = \int \int_{A(x)} \rho (x, y, z) y^0 dz dy \]

at \(x = i h\)

Parameters
iindex at which to evaluate the integral
Returns
the integral value

Implemented in BeamGeometryCuboid.

◆ B0()

virtual double B0 ( const int  i) const
pure virtual

evaluate the \( B_0 \) constant

\[ B_0(x) = B_0^*(L) - B_0^*(x) \]

with

\[ B_0^*(x) = \int_0^x b_0(s) ds \]

Parameters
iindex at which to evaluate the integral
Returns
the constant value

Implemented in BeamGeometryCuboid.

◆ b1()

virtual double b1 ( const int  i) const
pure virtual

Evaluate the \(b_1\) integral.

Evaluate the \(b_1\) integral, defined as

\[ b_1 = \int \int_{A(x)} \rho (x, y, z) y^1 dz dy \]

at \(x = i h\)

Parameters
iindex at which to evaluate the integral
Returns
the integral value

Implemented in BeamGeometryCuboid.

◆ c2()

virtual double c2 ( const int  i) const
pure virtual

Evaluate the \( c_2 \) integral.

Evaluate the \( c_2 \) integral, defined as

\[ c_2 = \int \int_{A(x)} \frac{K(x,y,z)}{8} y^2 dz dy \]

at \( x = i h \)

Parameters
iindex at which to evaluate the integral
Returns
the integral value

Implemented in BeamGeometryCuboid.

◆ c3()

virtual double c3 ( const int  i) const
pure virtual

Evaluate the \( c_3 \) integral.

Evaluate the \( c_3 \) integral, defined as

\[ c_3 = \int \int_{A(x)} \frac{K(x,y,z)}{8} y^3 dz dy \]

at \( x = i h \)

Parameters
iindex at which to evaluate the integral
Returns
the integral value

Implemented in BeamGeometryCuboid.

◆ c4()

virtual double c4 ( const int  i) const
pure virtual

Evaluate the \( c_4 \) integral.

Evaluate the \( c_4 \) integral, defined as

\[ c_4 = \int \int_{A(x)} \frac{K(x,y,z)}{8} y^4 dz dy \]

at \( x = i h \)

Parameters
iindex at which to evaluate the integral
Returns
the integral value

Implemented in BeamGeometryCuboid.

◆ Ex()

double Ex ( const int  i) const

returns the value of Young's modulus at x = i * h

Parameters
iindex at which to return the value
Returns
Young's modulus at x = i * h

◆ g1()

double g1 ( void  ) const

returns the x-component of vector of gravity for the current configuration of the beam

Returns
x-component of gravity

◆ g2()

double g2 ( void  ) const

returns the y-component of vector of gravity for the current configuration of the beam

Returns
y-component of gravity

◆ get_a()

double get_a ( void  ) const
inline

return left boundary of domain

Returns
left boundary

◆ get_b()

double get_b ( void  ) const
inline

return right boundary of domain

Returns
right boundary

◆ get_h()

double get_h ( void  ) const
inline

return stepsize

Returns
stepsize

◆ getG()

rw::math::Vector3D getG ( void  ) const

retrieves the directional vector of gravity

Returns
directional vector of gravity

◆ getL()

double getL ( void  ) const
inline

return length of beam

Returns
double

◆ getM()

int getM ( void  ) const
inline

return number of cross sections in beam

Returns
number of cross sections

◆ getTransform()

rw::math::Transform3D getTransform ( void  ) const

Retrieves the world to beam base transform of the beam.

Returns
world to beam base transform

◆ kappa()

double kappa ( const int  i) const

returns the kappa coefficient at x = i * h

Kappa is the coefficient relating the i,k = (1,1) coefficients of strain to stress in a plane stress situation, i.e.

\[ \sigma_{11} = \frac{E}{1 - \nu^2} u_{11} \]

with \( \kappa = \frac{E}{1 - \nu^2} \)

Parameters
iindex at which to return the value
Returns
kappa at x = i * h

◆ rho()

double rho ( const int  i) const

returns the value of the mass density at x = i * h

Parameters
iindex at which to return the value
Returns
mass density at x = i * h

◆ setG()

void setG ( const rw::math::Vector3D<> &  G)

sets the directional vector of gravity

Parameters
Gdirectional vector of gravity

◆ setTransform()

void setTransform ( const rw::math::Transform3D<> &  T)

Sets the homogeneous transform of the beam.

Parameters
Tworld to beam base transform

◆ vx()

double vx ( const int  i) const

returns the value of Poisson's ratio at x = i * h

Parameters
iindex at which to return the value
Returns
Poisson's ratio at x = i * h

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  out,
const BeamGeometry obj 
)
friend

outputs the geometry to stream

Parameters
outthe stream
objthe geometry
Returns
the geometry as a stream

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