File implicitTimeStepper.h

class implicitTimeStepper : public baseTimeStepper

Subclassed by backwardEuler

Public Functions

implicitTimeStepper(const shared_ptr<softRobots> &soft_robots, const shared_ptr<forceContainer> &forces, const simParams &sim_params, solverType solver_type)
~implicitTimeStepper() override
virtual void addJacobian(int ind1, int ind2, double p, int limb_idx) override
virtual void addJacobian(int ind1, int ind2, double p, int limb_idx1, int limb_idx2) override
virtual void setZero() override
virtual void update() override
virtual void integrator() override
virtual void initStepper() override
virtual void prepSystemForIteration() override
virtual double newtonMethod(double dt) = 0
virtual void lineSearch(double dt) = 0

Public Members

MKL_INT *ia
vector<pair<int, int>> non_zero_elements
double *dgbsv_jacobian
int kl
int ku
int num_rows

Protected Functions

template<solverType solver_type>
virtual void addJacobian(int ind1, int ind2, double p, int limb_idx1, int limb_idx2)

Protected Attributes

double ftol
double dtol
int max_iter
bool line_search
double orig_dt
bool adaptive_time_stepping
int adaptive_time_stepping_threshold

Private Functions

shared_ptr<implicitTimeStepper> shared_from_this()

Private Members

unique_ptr<baseSolver> solver
solverType solver_type
int dgbsv_jacobian_len