|
Phyth v0.1.0
A dimensional safe C++ header-only mechanics and electromagnetics simulation library.
|
Uniform body force distributed over a rectangular box. More...
#include <VolumeForce.hpp>


Private Member Functions | |
| Matrix3x3< Quantity< Pascal > > | NumericalIntegrateStress (const Vector3< Quantity< Meter > > &point, const int nx, const int ny, const int nz) const |
| Numerical integration of stress over the volume. | |
Private Attributes | |
| Vector3< Quantity< Meter > > | center_ |
| Quantity< Meter > | width_ |
| Quantity< Meter > | height_ |
| Quantity< Meter > | depth_ |
| Vector3< Quantity< NewtonPerMeterCubed > > | force_density_ |
| IsotropicMaterial | material_ |
Uniform body force distributed over a rectangular box.
VolumeForce represents a body force density acting throughout a rectangular volume. The stress field is computed by numerical integration using the midpoint rule with configurable resolution.
Example:
Definition at line 24 of file VolumeForce.hpp.
|
inlineexplicitnoexcept |
Construct a rectangular volume force.
| center | Center of the box |
| width | Extent along x |
| height | Extent along y |
| depth | Extent along z |
| force_density | Uniform body force density |
| material | Material properties |
Definition at line 36 of file VolumeForce.hpp.
|
inlineoverridevirtual |
Get the body force density at a point.
| point | Position to evaluate |
Reimplemented from Phyth::Mechanics::ForceSource.
Definition at line 90 of file VolumeForce.hpp.
|
inlineoverridevirtual |
Get the force vector at a point.
Volume force is distributed, so returns zero at any single point.
Implements Phyth::Mechanics::ForceSource.
Definition at line 69 of file VolumeForce.hpp.
|
inline |
Get the force density vector.
Definition at line 130 of file VolumeForce.hpp.
|
inlineoverridevirtual |
Get the minimum distance from a point to the rectangular volume.
| point | Position to compute distance from |
Implements Phyth::Mechanics::ForceSource.
Definition at line 111 of file VolumeForce.hpp.
|
inlineoverridevirtual |
Compute stress tensor at a point using numerical integration.
| point | Position to evaluate |
Implements Phyth::Mechanics::ForceSource.
Definition at line 58 of file VolumeForce.hpp.
|
inlineoverridevirtual |
Get the total force of this source.
Implements Phyth::Mechanics::ForceSource.
Definition at line 80 of file VolumeForce.hpp.
|
inlineprivate |
Numerical integration of stress over the volume.
Uses the midpoint rule with nx * ny * nz segments. Each voxel contributes dsigma = Kelvin(dF) where dF = force_density * dV.
Definition at line 153 of file VolumeForce.hpp.
|
inline |
Set the force density vector.
Definition at line 137 of file VolumeForce.hpp.
Definition at line 142 of file VolumeForce.hpp.
Definition at line 143 of file VolumeForce.hpp.
|
private |
Definition at line 144 of file VolumeForce.hpp.
Definition at line 143 of file VolumeForce.hpp.
|
private |
Definition at line 145 of file VolumeForce.hpp.
Definition at line 143 of file VolumeForce.hpp.