OpenABF 2.1.0
Loading...
Searching...
No Matches
Typedefs | Functions
OpenABF::detail::ABF Namespace Reference

ABF and ABF++ implementation details More...

Typedefs

template<typename T >
using Mesh = HalfEdgeMesh< T, 3, traits::ABFVertexTraits< T >, traits::ABFEdgeTraits< T >, traits::ABFFaceTraits< T > >
 A HalfEdgeMesh with the ABF traits.
 

Functions

template<typename T , class MeshPtr >
void InitializeAnglesAndWeights (MeshPtr &m)
 Initialize the ABF angles and weights from the edge alpha values.
 
template<typename T , class FacePtr , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
auto TriGrad (const FacePtr &f) -> T
 Compute ∇CTri w.r.t LambdaTri == CTri.
 
template<typename T , class VertPtr , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
auto PlanGrad (const VertPtr &v) -> T
 Compute ∇CPlan w.r.t LambdaPlan == CPlan.
 
template<typename T , class VertPtr , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
auto LenGrad (const VertPtr &vertex) -> T
 Compute ∇CLen w.r.t LambdaLen == CLen.
 
template<typename T , class VertPtr , class EdgePtr , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
auto LenGrad (const VertPtr &vertex, const EdgePtr &edge) -> T
 Compute ∇CLen w.r.t edge->alpha.
 
template<typename T , class EdgePtr , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
auto AlphaGrad (const EdgePtr &edge) -> T
 Compute ∇F w.r.t an edge's alpha.
 
template<typename T , class MeshPtr , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
auto Gradient (const MeshPtr &mesh) -> T
 Compute ∇F w.r.t all parameters.
 

Detailed Description

ABF and ABF++ implementation details