Exemplo n.º 1
0
void
MultiscaleCoupling::createCouplingMap ( MapEpetra& couplingMap )
{

#ifdef HAVE_LIFEV_DEBUG
    debugStream ( 8200 ) << "MultiscaleCoupling::createCouplingMap( couplingMap ) \n";
#endif

    M_couplingVariablesOffset = couplingMap.map ( Unique )->NumGlobalElements();

    couplingMap += localCouplingVariables ( 0 ).map();
}
Exemplo n.º 2
0
void
MultiscaleCoupling::extrapolateCouplingVariables()
{

#ifdef HAVE_LIFEV_DEBUG
    debugStream ( 8200 ) << "MultiscaleCoupling::extrapolateCouplingVariables() \n";
#endif

    if ( myModelsNumber() > 0 )
    {
        // Extrapolate the coupling variables at the next time
        multiscaleVector_Type extrapolatedCouplingVariables ( localCouplingVariables ( 0 ) );
        interpolateCouplingVariables ( M_globalData->dataTime()->nextTime(), extrapolatedCouplingVariables );

        // If we have not yet enough samples for interpolation, we add a new one
        UInt couplingVariablesSize ( M_localCouplingVariables.size() );
        if ( couplingVariablesSize <= M_timeInterpolationOrder )
        {
            ++couplingVariablesSize;
            M_localCouplingVariables.push_back ( multiscaleVectorPtr_Type ( new VectorEpetra ( localCouplingVariables ( 0 ) ) ) );
        }

        // Updating database
        for ( UInt i (1) ; i < couplingVariablesSize ; ++i )
        {
            localCouplingVariables ( couplingVariablesSize - i ) = localCouplingVariables ( couplingVariablesSize - i - 1 );
        }

        localCouplingVariables ( 0 ) = extrapolatedCouplingVariables;

#ifdef HAVE_LIFEV_DEBUG
        for ( UInt i ( 0 ); i < M_couplingVariablesNumber; ++i )
        {
            debugStream ( 8200 ) << "C(" << M_couplingVariablesOffset + i << ") = " << ( localCouplingVariables ( 0 ) ) [i]  << "\n";
        }
#endif
    }
}
Exemplo n.º 3
0
 /*!
  * @param couplingVariables Global vector of coupling variables
  */
 void exportCouplingVariables ( multiscaleVector_Type& couplingVariables )
 {
     exportCouplingVector ( couplingVariables, localCouplingVariables ( 0 ), Zero );
 }
Exemplo n.º 4
0
 /*!
  * @param couplingVariables Global vector of coupling variables
  */
 void importCouplingVariables ( const multiscaleVector_Type& couplingVariables )
 {
     importCouplingVector ( localCouplingVariables ( 0 ), couplingVariables, Add );
 }