returnValue DynamicDiscretization::deleteAllSeeds(){

    BlockMatrix empty;
    setBackwardSeed( empty );
    setForwardSeed( empty, empty, empty, empty );
    return SUCCESSFUL_RETURN;
}
returnValue DynamicDiscretization::setUnitBackwardSeed(){

    BlockMatrix seed( 1, N );
    int run1;
    for( run1 = 0; run1 < N; run1++ )
        seed.setIdentity( 0, run1, nx );

    return setBackwardSeed( seed );
}
Ejemplo n.º 3
0
returnValue Integrator::integrateSensitivities( ){

    uint run1;
    returnValue returnvalue;


    if( ( nBDirs > 0 || nBDirs2 > 0 ) && transition != 0 ){

        int order;
        if( nBDirs2 > 0 ) order = 2;
        else              order = 1;

        returnvalue = diffTransitionBackward( dXb, dPb, dUb, dWb, order );

        setBackwardSeed( order, dXb );

        if( returnvalue != SUCCESSFUL_RETURN ) return ACADOERROR(returnvalue);
    }

    returnvalue = evaluateSensitivities();

    if( returnvalue != SUCCESSFUL_RETURN ) return ACADOERROR(returnvalue);


    if( nBDirs > 0 || nBDirs2 > 0 ) return SUCCESSFUL_RETURN;

    int order = 1;
    if( nFDirs2 > 0 ) order = 2;

    Matrix tmp( rhs->getDim(), 1 );
    returnvalue = getProtectedForwardSensitivities(&tmp,order);

    Vector components = rhs->getDifferentialStateComponents();

    dX.init(rhs->getDim()-ma);
    dX.setZero();

    for( run1 = 0; run1 < components.getDim(); run1++ )
        dX((int) components(run1)) = tmp(run1,0);

    if( returnvalue != SUCCESSFUL_RETURN ) return ACADOERROR(returnvalue);

    if( transition != 0 )
        returnvalue = diffTransitionForward( dX, dP, dU, dW, order );

    return returnvalue;
}
Ejemplo n.º 4
0
returnValue Objective::setUnitBackwardSeed( ){

    BlockMatrix seed(1,1);
    seed.setIdentity(0,0,1);
    return setBackwardSeed(&seed,1);
}