core 1.5.0
Shared MPI block decomposition, asynchronous ghost-layer exchange, SDF geometry, load balancing (header-only C++20)
Loading...
Searching...
No Matches
body_properties.hpp File Reference
#include <cmath>
#include <cstddef>
#include <stdexcept>
#include "peclet/core/geom/quadrature.hpp"

Go to the source code of this file.

Classes

struct  peclet::core::geom::BodyProperties< Real >
 

Namespaces

namespace  peclet
 
namespace  peclet::core
 
namespace  peclet::core::geom
 
namespace  peclet::core::geom::body_detail
 

Functions

template<class Real , class Phi >
void peclet::core::geom::body_detail::interiorMoments (const Phi &phi, Vec3< Real > p0, Vec3< Real > d, int nseg, Real &m0, Real &m1, Real &m2)
 Moments of the NEGATIVE set {phi < 0} along p0 + s*d, s in [0,1], in the PARAMETER s: m0 = ∫ 1 ds, m1 = ∫ s ds, m2 = ∫ s² ds over the interior runs.
 
template<class Real >
void peclet::core::geom::body_detail::eigSym3 (const Real A[3][3], Real w[3], Real V[3][3])
 Jacobi eigensolver for a symmetric 3x3: A = V diag(w) V^T, V orthonormal columns.
 
template<class Real >
void peclet::core::geom::body_detail::resolveDegenerateFrame (Real w[3], Real V[3][3], Real relTol=Real(1e-2))
 Within each cluster of (near-)equal eigenvalues, rotate the eigenbasis onto the input axes with the largest projection into that subspace (orthogonal Procrustes on the k x k projection).
 
template<class Real >
Quat< Real > peclet::core::geom::body_detail::quatFromRotation (const Real R[3][3])
 Rotation matrix (columns orthonormal, det +1) -> quaternion (x, y, z, w), Shepperd's method.
 
template<class Real , class Phi >
BodyProperties< Real > peclet::core::geom::bodyProperties (const Phi &phi, Vec3< Real > lo, Vec3< Real > hi, int n=32, int order=5, int nseg=8, Real density=Real(1))
 Mass properties of {phi < 0} over the box [lo, hi], composite implicit quadrature: an n^3 cell grid; per cell a tensor Gauss rule (order nodes per transverse axis, height axis chosen from the central gradient like cellVolumeFraction) with analytic 1-D moments along each line.