23 class FrictionController;
Constraint solver callback interface with context and start rows for context.
Solver callback class for elementary FrictionController.
static agx::Real calculateNormalForce(const agx::ConstraintImplementation *context, ContextData contextData)
agx::Real calculateNormalForce() const
FrictionControllerNlCallback(const agx::FrictionController *frictionController)
Default constructor.
virtual agx::Bool initialize(const agx::NlmcpCallback::Args &args) override
This method is a test for the non-linear solver if this callback is active for non-linear solve.
agx::Real calculateNormalForce(const agx::ConstraintImplementation *context) const
virtual void onSetContext(const NlmcpCallbackSolverData &) override
Called when context constraint has been set and all data is valid.
agx::Real calculateNormalImpact(const agx::RealValarray &z) const
virtual void postIterativeSolve(const agx::NlmcpCallback::Args &) const override
Before direct solve, after iterative solve.
virtual agx::Real calculateResidual(const agx::NlmcpCallback::Args &args) const override
Calculate residual given current solution.
virtual ~FrictionControllerNlCallback()
virtual void update(const agx::NlmcpCallback::Args &args) const override
Update call when bounds and/or q may be updated given the current solution z.
static ContextData findContextData(const agx::FrictionController *frictionController, const agx::ConstraintImplementation *context)
Translational or rotational friction controller for Hinge, Prismatic and CylindricalJoint.
The agx namespace contains the dynamics/math part of the AGX Dynamics API.
std::valarray< agx::Real > RealValarray
For this module, vectors are defined using valarray.
AGXCORE_EXPORT const InvalidIndexStruct InvalidIndex
bool useSecondaryConstraint
Data from the solver the ConstraintNlmcpCallback is part of.