Template Class VectorFit

Inheritance Relationships

Base Type

Class Documentation

template<typename scalar_type, typename index_type>
class VectorFit : public GridKit::EMT::Component<scalar_type, index_type>

Vector-fitted rational operator.

w has K entries per real pole, then per conjugate pair, and v has K entries per conjugate pair.

Public Functions

VectorFit(const ModelDataT &data, IdxT N, IdxT K, RealT scale = ONE<RealT>)

N by K operator with D, E and the residues multiplied by scale.

virtual int setAbsoluteTolerance(RealT rel_tol) override

Memory states at the tolerance of their input over the pole magnitude.

virtual int tagDifferentiable() override

Fill the tag() vector with proper indicators.

Note

For some models, this may be a no-op, and the vector returned by tag() will still be empty.

Pre:

allocate() must have been called.

virtual int evaluateResidual() override

Evaluate the model’s residual function.

For models which can be appropriately modeled in semi-explicit form, this will evaluate

\[F(t, y, \dot{y}) = f(t,y) - M \dot{y},\]
where
\[M\]
is the mass matrix. For models which can be modeled in Hessenberg form,
\[M\]
should be a simple indicator function for if the variable is differential (if
\[\dot{y}\]
appears in its equation). This indicator should be given by tag().