当前位置: 首页>>代码示例>>C++>>正文


C++ vector::array方法代码示例

本文整理汇总了C++中fsi::vector::array方法的典型用法代码示例。如果您正苦于以下问题:C++ vector::array方法的具体用法?C++ vector::array怎么用?C++ vector::array使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在fsi::vector的用法示例。


在下文中一共展示了vector::array方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: getSourceTerm

    void ESDIRK::getSourceTerm(
        const bool /*corrector*/,
        const int k,
        const int /*sweep*/,
        const scalar deltaT,
        fsi::vector & rhs,
        fsi::vector & qold
        )
    {
        assert( k <= nbStages - 1 );

        qold = this->qold;

        // Compute the time step from the stage deltaT
        if ( dt < 0 )
        {
            // first time step, first prediction step
            dt = deltaT / A( k, k );
        }

        assert( dt > 0 );

        rhs.setZero();

        // Calculate sum of the stage residuals
        for ( int iStage = 0; iStage < k; iStage++ )
            rhs += A( k, iStage ) * F.row( iStage ).transpose();

        rhs.array() *= dt;

        this->stageIndex = k;
    }
开发者ID:gunnups,项目名称:FOAM-FSI,代码行数:32,代码来源:ESDIRK.C

示例2: solve

void TubeFlowLinearizedFluidSolver::solve(
    const fsi::vector & a,
    fsi::vector & p
    )
{
    this->a = a.array() - a0;

    std::cout << "Solve fluid domain" << std::endl;

    // Construct right hand size of linear system

    fsi::vector b( 2 * N ), x( 2 * N );
    b.setZero();

    for ( int i = 1; i < N - 1; i++ )
    {
        // Continuity equation rhs

        b( i ) = dx / dt * ( an( i ) - this->a( i ) );
        b( i ) += 0.5 * u0 * ( this->a( i - 1 ) - this->a( i + 1 ) );

        // Momentum equation rhs

        b( i + N ) = u0 * dx / dt * ( an( i ) - this->a( i ) );
        b( i + N ) += 0.5 * u0 * u0 * ( this->a( i - 1 ) - this->a( i + 1 ) );
        b( i + N ) += a0 * dx / dt * un( i );
    }

    // Boundary conditions

    // Velocity inlet condition
    b( 0 ) = u0 / 10.0 * std::pow( std::sin( M_PI * timeIndex * tau ), 2 );

    // Pressure inlet
    b( N ) = 0;

    // Velocity outlet condition
    b( N - 1 ) = 0;

    // Pressure outlet condition
    b( 2 * N - 1 ) = -cmk * rho * un( N - 1 ) + pn( N - 1 );

    // Solve for x

    x = lu.solve( b );

    // Retrieve solution

    u = x.head( N );
    this->p = x.tail( N );

    // Return pressure p
    p = this->p.array() + p0;

    data.col( 0 ) = p;
}
开发者ID:KangX1,项目名称:FOAM-FSI,代码行数:56,代码来源:TubeFlowLinearizedFluidSolver.C


注:本文中的fsi::vector::array方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。