Diana
0.8.3
|
#include <CapeESO.hpp>
Public Member Functions | |
virtual | ~ICapeNumericDAESO () |
virtual void | SetAllDerivatives (const Common::Types::CapeArrayDouble &varValues)=0 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument, Common::Error::ECapeBadInvOrder, Common::Error::ECapeOutOfBounds) |
virtual const Common::Types::CapeArrayDouble & | GetAllDerivatives ()=0 throw (Common::Error::ECapeUnknown, Common::Error::ECapeBadInvOrder) |
virtual Common::Types::CapeArrayDouble | GetDerivatives (const Common::Types::CapeArrayLong &varIndices)=0 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument, Common::Error::ECapeBadInvOrder, Common::Error::ECapeOutOfBounds) |
virtual void | SetDerivatives (const Common::Types::CapeArrayLong &varIndices, const Common::Types::CapeArrayDouble &varValues)=0 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument, Common::Error::ECapeBadInvOrder, Common::Error::ECapeOutOfBounds) |
virtual const Diana::DianaSparseArray & | GetDiffJacobianStruct ()=0 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl) |
virtual const Diana::DianaSparseArray & | GetAllDiffJacobianValues ()=0 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl) |
virtual Common::Types::CapeArrayDouble | GetDiffJacobianValues (const Common::Types::CapeArrayLong &indices)=0 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument, Common::Error::ECapeNoImpl, Common::Error::ECapeOutOfBounds) |
virtual void | SetIndependentVar (Common::Types::CapeDouble indVar)=0 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument) |
virtual Common::Types::CapeDouble | GetIndependentVar ()=0 throw (Common::Error::ECapeUnknown) |
Friends | |
std::ostream & | operator<< (std::ostream &out_file, const ICapeNumericDAESO &eso) |
This is the interface of the Differential-Algebraic Equation Set Object which represents a (generally rectangular) set of differential-algebraic equations of the form:
where is the independent variable and
is a vector of dependent variables. Also
denotes the derivatives
. We note that, in general, the quantities
will appear in the system for only a subset of the dependent variables
. This subset of
are often referred to as the "differential
variables" while the rest are the "algebraic variables". Of course, all these variables are functions of the independent variable
. It is worth clarifying the semantic interpretation of the methods that are inherited by this interface from ICapeNumericESO:
The methods introduce equivalent functionality for accessing and altering information pertaining to . They also provide mechanisms for accessing and altering the value of the independent variable
.
virtual ~ICapeNumericDAESO | ( | ) | [inline, virtual] |
Virtual default destructor.
virtual const Common::Types::CapeArrayDouble& GetAllDerivatives | ( | ) | throw (Common::Error::ECapeUnknown, Common::Error::ECapeBadInvOrder) [pure virtual] |
Gets the values of the derivatives for all the variables. The length of the array returned will be equal to the number of variables, but the values of derivatives which do not appear in the equation system may be meaningless.
Implemented in DianaDAESO, DianaSensDAESO, and IDianaSensDAESO.
virtual const Diana::DianaSparseArray& GetAllDiffJacobianValues | ( | ) | throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl) [pure virtual] |
Returns a matrix object whose GetValues method will provide the differential Jacobian values at the ESO s current variable values each time it is called (the values of entries indicated as uncomputable in the matrix returned by GetDiffJacobianStruct will be meaningless, but the call to GetValues will not cause an error simply because such entries exist).
Implemented in DiffitESO, DianaDAESO, DianaSensDAESO, and IDianaSensDAESO.
Referenced by HopfPointContinuation::packModelJacobian(), and HopfPointContinuation::packModelResidual().
virtual Common::Types::CapeArrayDouble GetDerivatives | ( | const Common::Types::CapeArrayLong & | varIndices | ) | throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument, Common::Error::ECapeBadInvOrder, Common::Error::ECapeOutOfBounds) [pure virtual] |
Gets the value of a subset of the derivatives.
varIndices | the indices of the variables whose derivatives we wish to get. |
Implemented in DianaDAESO, DianaSensDAESO, and IDianaSensDAESO.
virtual const Diana::DianaSparseArray& GetDiffJacobianStruct | ( | ) | throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl) [pure virtual] |
Returns a matrix object which contains information on the structure of the differential Jacobian matrix. The GetValues method of this object will provide values encoded as follows:
Implemented in DianaDAESO, DianaSensDAESO, and IDianaSensDAESO.
virtual Common::Types::CapeArrayDouble GetDiffJacobianValues | ( | const Common::Types::CapeArrayLong & | indices | ) | throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument, Common::Error::ECapeNoImpl, Common::Error::ECapeOutOfBounds) [pure virtual] |
Gets the values of selected entries of the differential Jacobian, at the current variable values of the ESO.
indices | the indices of selected elements. The semantics are those of the matrix's GetValues method |
Implemented in DianaDAESO.
virtual Common::Types::CapeDouble GetIndependentVar | ( | ) | throw (Common::Error::ECapeUnknown) [pure virtual] |
Gets the current value of the independent variable in the DAESO.
Implemented in DianaDAESO, DianaSensDAESO, and IDianaSensDAESO.
virtual void SetAllDerivatives | ( | const Common::Types::CapeArrayDouble & | varValues | ) | throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument, Common::Error::ECapeBadInvOrder, Common::Error::ECapeOutOfBounds) [pure virtual] |
Sets the numerical value of all the derivatives. The length of the array supplied must equal the number of variables: values for derivatives which do not appear in any of the equations can be ignored.
varValues | the values of the derivatives. |
Implemented in DianaDAESO, DianaSensDAESO, and IDianaSensDAESO.
virtual void SetDerivatives | ( | const Common::Types::CapeArrayLong & | varIndices, |
const Common::Types::CapeArrayDouble & | varValues | ||
) | throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument, Common::Error::ECapeBadInvOrder, Common::Error::ECapeOutOfBounds) [pure virtual] |
Sets the value of a subset of the derivatives.
varIndices | the indices of the variables whose derivatives we wish to get. |
varValues | the values of all the derivatives we wish to set |
Implemented in DianaDAESO, DianaSensDAESO, and IDianaSensDAESO.
virtual void SetIndependentVar | ( | Common::Types::CapeDouble | indVar | ) | throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument) [pure virtual] |
Sets the value of the independent variable in the DAESO.
indVar | the value of the independent variable |
Implemented in DianaDAESO, DianaSensDAESO, and IDianaSensDAESO.
std::ostream& operator<< | ( | std::ostream & | out_file, |
const ICapeNumericDAESO & | eso | ||
) | [friend] |
ostream output operator for the ICapeNumericDAESO class.