Example #1
0
MFNVector MFCloneLOCANVector(void *data, MFErrorHandler err)
{
  LOCANVectorData *vec_data = (LOCANVectorData*) data;
  Teuchos::RCP<LMCEV> u2 =
    Teuchos::rcp_dynamic_cast<LMCEV>(vec_data->u_ptr->clone(),true);

  return MFCreateLOCANVectorWithData(u2, err);
}
Example #2
0
int MFTangentLOCA(int n,int k,MFNVector vu,MFNKMatrix mPhi,void *d, 
		  MFErrorHandler err)
{
   LOCAData* data = (LOCAData *)d;

   LOCANVectorData* u0_data = (LOCANVectorData *) MFNVectorGetData(vu, err);
   data->grp->setX(*(u0_data->u_ptr));
   data->grp->computePredictor();

   const LOCA::MultiContinuation::ExtendedMultiVector& pred = 
     data->grp->getPredictorTangent();

   for (int i=0; i<k; i++) {
     Teuchos::RCP<LMCEV> t = 
       Teuchos::rcp_dynamic_cast<LMCEV>(pred[i].clone());
     MFNVector tmp =  MFCreateLOCANVectorWithData(t,err);
     MFMSetColumn(mPhi, i, tmp, err);
     MFFreeNVector(tmp, err);
   }

   MFGramSchmidt(data->space,mPhi, err);

   return 1;
}