7 #include "imstkNonLinearSystem.h" 12 template<
typename Matrix>
13 NonLinearSystem<Matrix>::NonLinearSystem(
const VectorFunctionType& F,
const MatrixFunctionType& dF) : m_F(F), m_dF(dF)
15 this->m_F_dF = [
this](
const Vectord& x,
const bool semiImplicit)
17 return std::make_pair(&(this->m_F(x, semiImplicit)), &(this->m_dF(x)));
21 template<
typename Matrix>
22 NonLinearSystem<Matrix>::NonLinearSystem(
const VectorFunctionType& F,
const MatrixFunctionType& dF,
const VectorMatrixFunctionType& F_dF) : m_F(F), m_dF(dF), m_F_dF(F_dF)
26 template<
typename Matrix>
33 template<
typename Matrix>
40 template<
typename Matrix>
44 return m_F(x, isSemiImplicit);
47 template<
typename Matrix>
virtual const Vectord & evaluateF(const Vectord &x, const bool isSemiImplicit)
Evaluate function at a given state.
Base class for a multi-variable nonlinear system.
virtual void setJacobian(const MatrixFunctionType &function)
Set the method that evaluates the gradient of the nonlinear function.
virtual const Matrix & evaluateJacobian(const Vectord &x)
Evaluate gradient of the function at a given state.
virtual void setFunction(const VectorFunctionType &function)
Set nonlinear method that evaluates the nonlinear function.