1#ifndef PHYTH_POINT_FORCE_HPP
2#define PHYTH_POINT_FORCE_HPP
60 const auto r_mag =
r.Length();
63 throw std::runtime_error(
"PointForce: stress diverges at force location");
Linear elastic isotropic material model.
Scalar GetPoissonRatio() const
Get Poisson's ratio.
Abstract base class for all force/traction distributions.
Concentrated force acting at a single point in an elastic medium.
Vector3< Quantity< Newton > > GetTotalForce() const override
Get the total force of this source.
Vector3< Quantity< Newton > > force_
Vector3< Quantity< Newton > > GetForceAt(const Vector3< Quantity< Meter > > &point) const override
Get the force vector at a point.
Vector3< Quantity< Meter > > GetPosition() const
Get the force location.
PointForce(const Vector3< Quantity< Meter > > &position, const Vector3< Quantity< Newton > > &force, const IsotropicMaterial &material) noexcept
Construct a point force.
Quantity< Meter > GetMinimumDistanceTo(const Vector3< Quantity< Meter > > &point) const override
Get the minimum distance from a point to the force location.
Vector3< Quantity< Meter > > position_
Vector3< Quantity< Newton > > GetForce() const
Get the force vector.
Matrix3x3< Quantity< Pascal > > GetStressAt(const Vector3< Quantity< Meter > > &point) const override
Compute stress tensor at a point.
IsotropicMaterial material_
Dimension< std::ratio< 1 >, std::ratio< 0 >, std::ratio< 0 >, std::ratio< 0 >, std::ratio< 0 >, std::ratio< 0 >, std::ratio< 0 > > Length
3x3 matrix with Quantity components
Physical quantity with a value and a compile-time unit.
3D vector with Quantity components