예제 #1
0
BEGIN_NAMESPACE_ACADO


//
// PUBLIC MEMBER FUNCTIONS:
//

IntegratorLYAPUNOV45::IntegratorLYAPUNOV45( )
               :IntegratorLYAPUNOV(7,0.25){

    if( A != 0 ) initializeButcherTableau();
}
예제 #2
0
BEGIN_NAMESPACE_ACADO


//
// PUBLIC MEMBER FUNCTIONS:
//

IntegratorRK12::IntegratorRK12( )
               :IntegratorRK(2,1.0){

    if( A != 0 ) initializeButcherTableau();
}
예제 #3
0
BEGIN_NAMESPACE_ACADO


//
// PUBLIC MEMBER FUNCTIONS:
//

IntegratorRK23::IntegratorRK23( )
               :IntegratorRK(3,0.5){

    if( A != 0 ) initializeButcherTableau();
}
예제 #4
0
파일: ESDIRK.C 프로젝트: gunnups/FOAM-FSI
 ESDIRK::ESDIRK( std::string method )
     :
     solver( nullptr ),
     adaptiveTimeStepper( nullptr ),
     dt( -1 ),
     nbStages( 0 ),
     A(),
     B(),
     C(),
     Bhat(),
     N( 0 ),
     stageIndex( 0 ),
     F(),
     solStages(),
     qold(),
     timeIndex( 0 )
 {
     initializeButcherTableau( method );
 }
예제 #5
0
파일: ESDIRK.C 프로젝트: gunnups/FOAM-FSI
    ESDIRK::ESDIRK(
        std::shared_ptr<SDCSolver> solver,
        std::string method,
        std::shared_ptr<AdaptiveTimeStepper> adaptiveTimeStepper
        )
        :
        solver( solver ),
        adaptiveTimeStepper( adaptiveTimeStepper ),
        dt( solver->getTimeStep() ),
        nbStages( 0 ),
        A(),
        B(),
        C(),
        Bhat(),
        N( solver->getDOF() ),
        stageIndex( 0 ),
        F(),
        solStages(),
        qold(),
        timeIndex( 0 )
    {
        assert( solver );
        assert( adaptiveTimeStepper );
        assert( dt > 0 );

        initializeButcherTableau( method );

        bool firstStageImplicit = isStageImplicit( A( 0, 0 ) );

        if ( firstStageImplicit )
            solver->setNumberOfImplicitStages( nbStages );
        else
            solver->setNumberOfImplicitStages( nbStages - 1 );

        adaptiveTimeStepper->setEndTime( solver->getEndTime() );
    }
예제 #6
0
IntegratorRK12::IntegratorRK12( const DifferentialEquation &rhs_ )
               :IntegratorRK(rhs_,2,1.0){

    if( A != 0 ) initializeButcherTableau();
}
예제 #7
0
IntegratorLYAPUNOV45::IntegratorLYAPUNOV45( const DifferentialEquation &rhs_ )
               :IntegratorLYAPUNOV(rhs_,7,0.25){

    if( A != 0 ) initializeButcherTableau();
}
예제 #8
0
IntegratorRK23::IntegratorRK23( const DifferentialEquation &rhs_ )
               :IntegratorRK(rhs_,3,0.5){

    if( A != 0 ) initializeButcherTableau();
}