Diana
0.8.3
|
#include <HopfPointContinuation.hpp>
Public Member Functions | |
HopfPointContinuation (Numeric::Solvers::Model::ICapeNumericModel *_pModel) | |
Numeric::Solvers::Solver::SolveReturn | Solve () throw (Common::Error::ECapeUnknown, Common::Error::ECapeBadInvOrder, Common::Error::ECapeSolvingError, Common::Error::ECapeOutOfResources) |
ContiReturn | Continuate () throw (Common::Error::ECapeUnknown, Common::Error::ECapeSolvingError) |
Common::Types::CapeString | GetVariableName (Common::Types::CapeLong index) throw (Common::Error::ECapeUnknown) |
Protected Member Functions | |
int | getModelEquations () |
int | getModelVariables () |
void | packModelBoundaries (Common::Types::CapeArrayDouble &arrMinY, Common::Types::CapeArrayDouble &arrMaxY) |
void | packModelVector (Common::Types::CapeArrayDouble &modelVector) |
void | unpackModelVector (const Common::Types::CapeArrayDouble &modelVector) |
void | packModelResidual (Common::Types::CapeArrayDouble &modelResidual) |
void | packModelJacobian (Diana::DianaSparseArray &Jaco) |
CapeBoolean | calcInitialEigenvector () |
CapeBoolean | calcEigenvalues () |
CapeBoolean | calcEigenvaluesLapack () |
CapeBoolean | calcEigenvaluesArpack () |
Private Attributes | |
Common::Types::CapeLong | nESOSize |
Common::Types::CapeArrayDouble | arrReEigenVector |
Common::Types::CapeArrayDouble | arrImEigenVector |
Common::Types::CapeDouble | dblOmega |
const Common::Types::CapeLong | nEigMonitorMax |
Common::Types::CapeLong | nEigMonitor |
Common::Types::CapeLong | nEigConverged |
Common::Types::CapeArrayDouble | arrReEigenValues |
Common::Types::CapeArrayDouble | arrImEigenValues |
std::vector< fortrand > | lapA |
std::vector< fortrand > | lapB |
std::vector< fortrand > | lapAlphaR |
std::vector< fortrand > | lapAlphaI |
std::vector< fortrand > | lapBeta |
std::vector< fortrand > | lapVl |
std::vector< fortrand > | lapVr |
std::vector< fortrand > | lapWork |
std::vector< fortrand > | arpResid |
std::vector< fortrand > | arpV |
std::vector< fortrand > | arpWorkd |
std::vector< fortrand > | arpWorkl |
std::vector< fortrand > | arpTmpX |
std::vector< fortranl > | arpSelect |
std::vector< fortrand > | arpWorkev |
Diana::DianaSparseArray | dsaArpAsM |
Diana::DianaSparseSolver | dssArpM |
Diana::DianaSparseSolver | dssArpAsM |
Continuation class definition
Constructor
_pModel | Pointer to the CAPE-ESO model in the implicit form ![]() ![]() ![]() |
References DianaCollection::AddIndexed(), Common::Parameter::CAPE_INPUT, Common::Parameter::CAPE_OUTPUT, DianaContinuation::collSolverParameters, Common::Error::ECodeNone, ICapeNumericESO::GetNumEqns(), ICapeNumericESO::GetNumVars(), and DianaContinuation::pESO.
ContiReturn Continuate | ( | ) | throw (Common::Error::ECapeUnknown, Common::Error::ECapeSolvingError) [virtual] |
Main continuation method.
Reimplemented from DianaContinuation.
References ECapeUser::code, ECapeUser::description, Common::Error::ECodeError, ECapeUser::interfaceName, ECapeUser::moreInfo, ECapeUser::operation, and ECapeUser::scope.
int getModelEquations | ( | ) | [protected, virtual] |
Returns size of the problem residual vector.
Implements DianaContinuation.
Referenced by HopfPointContinuation::packModelResidual().
int getModelVariables | ( | ) | [protected, virtual] |
Returns size of the problem variables subvector.
Implements DianaContinuation.
Referenced by HopfPointContinuation::packModelBoundaries(), HopfPointContinuation::packModelVector(), and HopfPointContinuation::unpackModelVector().
CapeString GetVariableName | ( | Common::Types::CapeLong | index | ) | throw (Common::Error::ECapeUnknown) [virtual] |
Returns name of the variable by index.
Reimplemented from DianaContinuation.
References ICapeIdentification::GetComponentName(), DianaContinuation::GetVariableName(), and ICapeCollection::ItemByIndex().
void packModelBoundaries | ( | Common::Types::CapeArrayDouble & | arrMinY, |
Common::Types::CapeArrayDouble & | arrMaxY | ||
) | [protected, virtual] |
Update boundary arrays dblMinY, dblMaxY. Before call of this function this array should have size at least getModelVariables() entries.
Implements DianaContinuation.
References DianaContinuation::dblMaxY, DianaContinuation::dblMinY, Common::Error::ECodeNone, ICapeNumericESO::GetLowerBounds(), HopfPointContinuation::getModelVariables(), ICapeNumericESO::GetUpperBounds(), and DianaContinuation::pESO.
void packModelJacobian | ( | Diana::DianaSparseArray & | Jaco | ) | [protected, virtual] |
Calculate Jacobian and set data to the matrix.
Reimplemented from DianaContinuation.
References sparray::append(), Common::Error::ECodeError, ICapeNumericDAESO::GetAllDiffJacobianValues(), ICapeNumericESO::GetAllJacobianValues(), DianaContinuation::nVerboseLevel, DianaContinuation::pESO, sparray::rank(), and sparray::size().
void packModelResidual | ( | Common::Types::CapeArrayDouble & | modelResidual | ) | [protected, virtual] |
Calculate residual and copy data to the pVector (ESO.Residual -> pVector).
Implements DianaContinuation.
References Common::Error::ECodeNone, ICapeNumericDAESO::GetAllDiffJacobianValues(), ICapeNumericESO::GetAllJacobianValues(), ICapeNumericESO::GetAllResiduals(), HopfPointContinuation::getModelEquations(), DianaContinuation::nVerboseLevel, DianaContinuation::pESO, and sparray::size().
void packModelVector | ( | Common::Types::CapeArrayDouble & | modelVector | ) | [protected, virtual] |
Copy data from the subclass to the pVector (ESO -> pVector).
Implements DianaContinuation.
References Common::Error::ECodeNone, ICapeNumericESO::GetAllVariables(), HopfPointContinuation::getModelVariables(), DianaContinuation::nVars, and DianaContinuation::pESO.
Numeric::Solvers::Solver::SolveReturn Solve | ( | ) | throw (Common::Error::ECapeUnknown, Common::Error::ECapeBadInvOrder, Common::Error::ECapeSolvingError, Common::Error::ECapeOutOfResources) [virtual] |
Method solves system of nonlinear equations contained in CAPE-ESO model. Initial values from the pESO state vector. If it succeeds, vecY and pESO will contain found point, otherwise it will be initial point
Reimplemented from DianaContinuation.
References ECapeUser::code, ECapeUser::description, Common::Error::ECodeError, ECapeUser::interfaceName, ECapeUser::moreInfo, ECapeUser::operation, and ECapeUser::scope.
void unpackModelVector | ( | const Common::Types::CapeArrayDouble & | modelVector | ) | [protected, virtual] |
Copy data from the the pVector to subclass data structures (pVector -> ESO).
Implements DianaContinuation.
References Common::Error::ECodeNone, HopfPointContinuation::getModelVariables(), DianaContinuation::nVars, DianaContinuation::pESO, and ICapeNumericESO::SetAllVariables().