您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ FEIElementGeometryWrapper函数代码示例

51自学网 2021-06-01 20:40:59
  C++
这篇教程C++ FEIElementGeometryWrapper函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中FEIElementGeometryWrapper函数的典型用法代码示例。如果您正苦于以下问题:C++ FEIElementGeometryWrapper函数的具体用法?C++ FEIElementGeometryWrapper怎么用?C++ FEIElementGeometryWrapper使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

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

示例1: computeEgdeNMatrixAt

// Edge load supportvoidDKTPlate :: computeEgdeNMatrixAt(FloatMatrix &answer, int iedge, GaussPoint *gp){    FloatArray n;    this->interp_lin.edgeEvalN( n, iedge, * gp->giveNaturalCoordinates(), FEIElementGeometryWrapper(this) );    answer.resize(3, 6);    answer.at(1, 1) = n.at(1);    answer.at(1, 4) = n.at(2);    answer.at(2, 2) = answer.at(3, 3) = n.at(1);    answer.at(2, 5) = answer.at(3, 6) = n.at(2);}
开发者ID:vivianyw,项目名称:oofem,代码行数:14,


示例2: computeInternalForcesVector

void Tet21Stokes :: computeInternalForcesVector(FloatArray &answer, TimeStep *tStep){    FluidDynamicMaterial *mat = static_cast< FluidCrossSection * >( this->giveCrossSection() )->giveFluidMaterial();    FloatArray a_pressure, a_velocity, devStress, epsp, Nh, dN_V(30);    FloatMatrix dN, B(6, 30);    double r_vol, pressure;    this->computeVectorOfVelocities(VM_Total, tStep, a_velocity);    this->computeVectorOfPressures(VM_Total, tStep, a_pressure);    FloatArray momentum, conservation;    B.zero();    for ( GaussPoint *gp: *integrationRulesArray [ 0 ] ) {        const FloatArray &lcoords = gp->giveNaturalCoordinates();        double detJ = fabs( this->interpolation_quad.evaldNdx( dN, lcoords, FEIElementGeometryWrapper(this) ) );        this->interpolation_lin.evalN( Nh, lcoords, FEIElementGeometryWrapper(this) );        double dV = detJ * gp->giveWeight();        for ( int j = 0, k = 0; j < dN.giveNumberOfRows(); j++, k += 3 ) {            dN_V(k + 0) = B(0, k + 0) = B(3, k + 1) = B(4, k + 2) = dN(j, 0);            dN_V(k + 1) = B(1, k + 1) = B(3, k + 0) = B(5, k + 2) = dN(j, 1);            dN_V(k + 2) = B(2, k + 2) = B(4, k + 0) = B(5, k + 1) = dN(j, 2);        }        epsp.beProductOf(B, a_velocity);        pressure = Nh.dotProduct(a_pressure);        mat->computeDeviatoricStressVector(devStress, r_vol, gp, epsp, pressure, tStep);        momentum.plusProduct(B, devStress, dV);        momentum.add(-pressure * dV, dN_V);        conservation.add(r_vol * dV, Nh);    }    answer.resize(34);    answer.zero();    answer.assemble(momentum, this->momentum_ordering);    answer.assemble(conservation, this->conservation_ordering);}
开发者ID:rainbowlqs,项目名称:oofem,代码行数:38,


示例3: computeShearForces

voidDKTPlate :: computeShearForces(FloatArray &answer, GaussPoint *gp, TimeStep *tStep){    // as shear strains are enforced to be zero (art least on element edges) the shear forces are computed from equlibrium    FloatMatrix m, dndx;    answer.resize(5);    this->computeVertexBendingMoments(m, tStep);    this->interp_lin.evaldNdx( dndx, * gp->giveNaturalCoordinates(), FEIElementGeometryWrapper(this) );    for ( int i = 1; i <= this->numberOfDofMans; i++ ) {        answer.at(4) += m.at(1, i) * dndx.at(i, 1) + m.at(3, i) * dndx.at(i, 2); //dMxdx + dMxydy        answer.at(5) += m.at(2, i) * dndx.at(i, 2) + m.at(3, i) * dndx.at(i, 1); //dMydy + dMxydx    }}
开发者ID:vivianyw,项目名称:oofem,代码行数:14,


示例4: computeSurfaceNMatrixAt

voidStructural3DElement :: computeSurfaceNMatrixAt(FloatMatrix &answer, int iSurf, GaussPoint *sgp){    /* Returns the [ 3 x (nno*3) ] shape function matrix {N} of the receiver,      * evaluated at the given gp.     * {u} = {N}*{a} gives the displacements at the integration point.     */               // Evaluate the shape functions at the position of the gp.     FloatArray N;    static_cast< FEInterpolation3d* > ( this->giveInterpolation() )->        surfaceEvalN( N, iSurf, sgp->giveNaturalCoordinates(), FEIElementGeometryWrapper(this) );      answer.beNMatrixOf(N, 3);}
开发者ID:Benjamin-git,项目名称:OOFEM_Jim,代码行数:14,


示例5: computeDivUMatrix

voidQuad10_2D_SUPG :: computeDivUMatrix(FloatMatrix &answer, GaussPoint *gp){    FloatMatrix dn;    velocityInterpolation.evaldNdx( dn, gp->giveNaturalCoordinates(), FEIElementGeometryWrapper(this) );    answer.resize(1, 8);    answer.zero();    for ( int i = 1; i <= 4; i++ ) {        answer.at(1, 2 * i - 1) = dn.at(i, 1);        answer.at(1, 2 * i) = dn.at(i, 2);    }}
开发者ID:rainbowlqs,项目名称:oofem,代码行数:14,


示例6: computeNuMatrix

voidQuad10_2D_SUPG :: computeNuMatrix(FloatMatrix &answer, GaussPoint *gp){    FloatArray n;    this->velocityInterpolation.evalN(n, * gp->giveCoordinates(), FEIElementGeometryWrapper(this));    answer.resize(2, 8);    answer.zero();    for ( int i = 1; i <= 4; i++ ) {        answer.at(1, 2 * i - 1) = n.at(i);        answer.at(2, 2 * i - 0) = n.at(i);    }}
开发者ID:Benjamin-git,项目名称:OOFEM_LargeDef,代码行数:14,


示例7: giveElementFMatrix

void Tr21Stokes :: giveElementFMatrix(FloatMatrix &answer){    IntegrationRule *iRule = integrationRulesArray [ 0 ];    GaussPoint *gp;    double detJ;    FloatArray N, N2, *lcoords;    IntArray col;    FloatMatrix temp;    N2.resize(6);   N2.zero();    col.resize(2);  col.at(1)=1;  col.at(2)=2;    temp.resize(15,2);    temp.zero();    for (int i=0; i<iRule->getNumberOfIntegrationPoints(); i++) {        gp = iRule->getIntegrationPoint(i);        lcoords = gp->giveCoordinates();        this->interpolation_quad.evalN(N, *lcoords, FEIElementGeometryWrapper(this));        detJ = this->interpolation_quad.giveTransformationJacobian(*lcoords, FEIElementGeometryWrapper(this));        N.times(gp->giveWeight()*detJ);        //N.printYourself();        N2.add(N);    }    for (int i=1; i<=6; i++) {        temp.at(i*2-1, 1)=N2.at(i);        temp.at(i*2, 2)=N2.at(i);    }    answer.resize(17,2);    answer.zero();    answer.assemble(temp, this->ordering, col);}
开发者ID:JimBrouzoulis,项目名称:oofem-1,代码行数:37,


示例8: computeNkappaMatrixAt

voidQTrPlaneStressGrad :: computeNkappaMatrixAt(GaussPoint *aGaussPoint, FloatMatrix &answer)// Returns the displacement interpolation matrix {N} of the receiver, eva-// luated at aGaussPoint.{    FloatArray n(3);    answer.resize(1, 3);    answer.zero();    this->interpolation.evalN(n, * aGaussPoint->giveCoordinates(), FEIElementGeometryWrapper(this));    for ( int i = 1; i <= 3; i++ ) {        answer.at(1, i) = n.at(i);    }}
开发者ID:Benjamin-git,项目名称:OOFEM_LargeDef,代码行数:15,


示例9: computeNmatrixAt

voidQ4Axisymm :: computeNmatrixAt(GaussPoint *aGaussPoint, FloatMatrix &answer)// Returns the displacement interpolation matrix {N} of the receiver,// evaluated at aGaussPoint.{    FloatArray n;    this->interp.evalN(n, *aGaussPoint->giveCoordinates(), FEIElementGeometryWrapper(this));    answer.resize(2, 16);    answer.zero();    for ( int i = 1; i <= 8; i++ ) {        answer.at(1, 2 * i - 1) = n.at(i);        answer.at(2, 2 * i - 0) = n.at(i);    }}
开发者ID:MartinFagerstrom,项目名称:oofem,代码行数:15,


示例10: computeVolumeAround

doubleL4Axisymm :: computeVolumeAround(GaussPoint *aGaussPoint)// Returns the portion of the receiver which is attached to aGaussPoint.{    int i;    double determinant, weight, volume, r, x;    FloatArray n(4);    this->interpolation.evalN( n, * aGaussPoint->giveCoordinates(), FEIElementGeometryWrapper(this) );    r = 0.;    for ( i = 1; i <= numberOfDofMans; i++ ) {        x  = this->giveNode(i)->giveCoordinate(1);        r += x * n.at(i);    }    determinant = fabs( this->interpolation.giveTransformationJacobian( * aGaussPoint->giveCoordinates(),                                                                       FEIElementGeometryWrapper(this) ) );    weight = aGaussPoint->giveWeight();    volume = determinant * weight * r;    return volume;}
开发者ID:JimBrouzoulis,项目名称:oofem-1,代码行数:24,


示例11: computeBd_matrixAt

voidStructuralInterfaceElementPhF :: computeBd_matrixAt(GaussPoint *gp, FloatMatrix &answer){    FloatMatrix dNdxi;    FloatMatrix G;    this->computeCovarBaseVectorsAt(gp, G);        this->giveInterpolation( )->evaldNdxi( dNdxi, gp->giveNaturalCoordinates(), FEIElementGeometryWrapper( this ) );    answer.beProductTOf(G,dNdxi);    //answer.beTranspositionOf( dNdx );        }
开发者ID:Benjamin-git,项目名称:OOFEM_Jim,代码行数:15,


示例12: computeBkappaMatrixAt

voidQTrPlaneStressGrad :: computeBkappaMatrixAt(GaussPoint *aGaussPoint, FloatMatrix &answer){    FloatMatrix dnx;    this->interpolation.evaldNdx(dnx, * aGaussPoint->giveCoordinates(), FEIElementGeometryWrapper(this));    answer.resize(2, 3);    answer.zero();    for ( int i = 1; i <= 3; i++ ) {        answer.at(1, i) = dnx.at(i, 1);        answer.at(2, i) = dnx.at(i, 2);    }}
开发者ID:Benjamin-git,项目名称:OOFEM_LargeDef,代码行数:15,


示例13: computeCovarBaseVectorAt

voidIntElLine1PhF :: computeCovarBaseVectorAt(IntegrationPoint *ip, FloatArray &G){    FloatMatrix dNdxi;    FEInterpolation *interp = this->giveInterpolation();    interp->evaldNdxi( dNdxi, ip->giveNaturalCoordinates(), FEIElementGeometryWrapper(this) );    G.resize(2);    G.zero();    int numNodes = this->giveNumberOfNodes();    for ( int i = 1; i <= dNdxi.giveNumberOfRows(); i++ ) {        double X1_i = 0.5 * ( this->giveNode(i)->giveCoordinate(1) + this->giveNode(i + numNodes / 2)->giveCoordinate(1) ); // (mean) point on the fictious mid surface        double X2_i = 0.5 * ( this->giveNode(i)->giveCoordinate(2) + this->giveNode(i + numNodes / 2)->giveCoordinate(2) );        G.at(1) += dNdxi.at(i, 1) * X1_i;        G.at(2) += dNdxi.at(i, 1) * X2_i;    }}
开发者ID:erisve,项目名称:oofem,代码行数:16,


示例14: computeVolumeAround

doubleQ4Axisymm :: computeVolumeAround(GaussPoint *aGaussPoint)// Returns the portion of the receiver which is attached to aGaussPoint.{    FloatArray n;    double determinant, r;    this->interp.evalN(n, *aGaussPoint->giveCoordinates(), FEIElementGeometryWrapper(this));    for ( int i = 1; i <= 8; i++ ) {        r += this->giveNode(i)->giveCoordinate(1) * n.at(i);    }    determinant = fabs( this->interp.giveTransformationJacobian(*aGaussPoint->giveCoordinates(), FEIElementGeometryWrapper(this)) );    return determinant * aGaussPoint->giveWeight() * r;}
开发者ID:MartinFagerstrom,项目名称:oofem,代码行数:16,


示例15: domainSize

double MixedGradientPressureBC :: domainSize(){    int nsd = this->domain->giveNumberOfSpatialDimensions();    double domain_size = 0.0;    // This requires the boundary to be consistent and ordered correctly.    Set *set = this->giveDomain()->giveSet(this->set);    const IntArray &boundaries = set->giveBoundaryList();    for ( int pos = 1; pos <= boundaries.giveSize() / 2; ++pos ) {        Element *e = this->giveDomain()->giveElement( boundaries.at(pos * 2 - 1) );        int boundary = boundaries.at(pos * 2);        FEInterpolation *fei = e->giveInterpolation();        domain_size += fei->evalNXIntegral( boundary, FEIElementGeometryWrapper(e) );    }    return domain_size / nsd;}
开发者ID:Benjamin-git,项目名称:OOFEM_Jim,代码行数:16,


示例16: domainSize

double TransportGradientPeriodic :: domainSize(Domain *d, int setNum){    int nsd = d->giveNumberOfSpatialDimensions();    double domain_size = 0.0;    // This requires the boundary to be consistent and ordered correctly.    Set *set = d->giveSet(setNum);    const IntArray &boundaries = set->giveBoundaryList();    for ( int pos = 1; pos <= boundaries.giveSize() / 2; ++pos ) {        Element *e = d->giveElement( boundaries.at(pos * 2 - 1) );        int boundary = boundaries.at(pos * 2);        FEInterpolation *fei = e->giveInterpolation();        domain_size += fei->evalNXIntegral( boundary, FEIElementGeometryWrapper(e) );    }    return fabs(domain_size / nsd);}
开发者ID:johnnyontheweb,项目名称:oofem,代码行数:16,


示例17: computeBoundaryLoadVector

void Tet21Stokes :: computeBoundaryLoadVector(FloatArray &answer, BoundaryLoad *load, int iSurf, CharType type, ValueModeType mode, TimeStep *tStep){    if ( type != ExternalForcesVector ) {        answer.clear();        return;    }    answer.resize(34);    answer.zero();    if ( load->giveType() == TransmissionBC ) { // Neumann boundary conditions (traction)        int numberOfSurfaceIPs = ( int ) ceil( ( load->giveApproxOrder() + 1. ) / 2. ) * 2; ///@todo Check this.        GaussIntegrationRule iRule(1, this, 1, 1);        FloatArray N, t, f(18);        f.zero();        iRule.SetUpPointsOnTriangle(numberOfSurfaceIPs, _Unknown);        for ( GaussPoint *gp: iRule ) {            const FloatArray &lcoords = gp->giveNaturalCoordinates();            this->interpolation_quad.surfaceEvalN( N, iSurf, lcoords, FEIElementGeometryWrapper(this) );            double dA = gp->giveWeight() * this->interpolation_quad.surfaceGiveTransformationJacobian( iSurf, lcoords, FEIElementGeometryWrapper(this) );            if ( load->giveFormulationType() == Load :: FT_Entity ) { // load in xi-eta system                load->computeValueAt(t, tStep, lcoords, VM_Total);            } else { // Edge load in x-y system                FloatArray gcoords;                this->interpolation_quad.surfaceLocal2global( gcoords, iSurf, lcoords, FEIElementGeometryWrapper(this) );                load->computeValueAt(t, tStep, gcoords, VM_Total);            }            // Reshape the vector            for ( int j = 0; j < N.giveSize(); j++ ) {                f(3 * j + 0) += N(j) * t(0) * dA;                f(3 * j + 1) += N(j) * t(1) * dA;                f(3 * j + 2) += N(j) * t(2) * dA;            }        }        answer.assemble(f, this->surf_ordering [ iSurf - 1 ]);    } else {        OOFEM_ERROR("Strange boundary condition type");    }}
开发者ID:rainbowlqs,项目名称:oofem,代码行数:47,


示例18: computeNmatrixAt

voidIntElLine1PhF :: computeNmatrixAt(GaussPoint *ip, FloatMatrix &answer){    // Returns the modified N-matrix which multiplied with u give the spatial jump.    FloatArray N;    FEInterpolation *interp = this->giveInterpolation();    interp->evalN( N, ip->giveNaturalCoordinates(), FEIElementGeometryWrapper(this) );    answer.resize(2, 8);    answer.zero();    answer.at(1, 1) = answer.at(2, 2) = -N.at(1);    answer.at(1, 3) = answer.at(2, 4) = -N.at(2);    answer.at(1, 5) = answer.at(2, 6) = N.at(1);    answer.at(1, 7) = answer.at(2, 8) = N.at(2);}
开发者ID:erisve,项目名称:oofem,代码行数:17,


示例19: computeGlobalCoordinates

intInterfaceElement3dTrLin :: computeGlobalCoordinates(FloatArray &answer, const FloatArray &lcoords){    FloatArray n;    this->interpolation.evalN( n, lcoords, FEIElementGeometryWrapper(this) );    answer.resize(3);    answer.zero();    for ( int i = 1; i <= 3; i++ ) {        answer.at(1) += n.at(i) * this->giveNode(i)->giveCoordinate(1);        answer.at(2) += n.at(i) * this->giveNode(i)->giveCoordinate(2);        answer.at(3) += n.at(i) * this->giveNode(i)->giveCoordinate(3);    }    return 1;}
开发者ID:xyuan,项目名称:oofem,代码行数:17,


示例20: computeNmatrixAt

voidDKTPlate :: computeNmatrixAt(const FloatArray &iLocCoord, FloatMatrix &answer)// Returns the [3x9] displacement interpolation matrix {N} of the receiver,// evaluated at gp.// Note: this interpolation is not available, as the deflection is cubic along the edges,//       but not define in the interior of the element// Note: the interpolation of rotations is quadratic// NOTE: linear interpolation returned instead{    FloatArray N;    answer.resize(3, 9);    answer.zero();    giveInterpolation()->evalN( N, iLocCoord, FEIElementGeometryWrapper(this) );    answer.beNMatrixOf(N, 3);}
开发者ID:vivianyw,项目名称:oofem,代码行数:17,


示例21: EIPrimaryUnknownMI_computePrimaryUnknownVectorAtLocal

void Line2BoundaryElement :: EIPrimaryUnknownMI_computePrimaryUnknownVectorAtLocal(ValueModeType mode,                                                                                   TimeStep *tStep, const FloatArray &lcoords, FloatArray &answer){    FloatArray n;    this->fei.evalN( answer, lcoords, FEIElementGeometryWrapper(this) );    IntArray dofIDs;    this->giveElementDofIDMask(dofIDs);    answer.resize( dofIDs.giveSize() );    answer.zero();    for ( int i = 1; i <= n.giveSize(); ++i ) {        for ( int j = 1; j <= dofIDs.giveSize(); ++j ) {            answer.at(j) += n.at(i) * this->giveNode(i)->giveDofWithID( dofIDs.at(j) )->giveUnknown(mode, tStep);        }    }}
开发者ID:Benjamin-git,项目名称:OOFEM_Jim,代码行数:17,


示例22: computeBoundarySurfaceLoadVector

  void Tr21Stokes :: computeBoundarySurfaceLoadVector(FloatArray &answer, BoundaryLoad *load, int boundary, CharType type, ValueModeType mode, TimeStep *tStep, bool global){    if ( type != ExternalForcesVector ) {        answer.clear();        return;    }    if ( load->giveType() == TransmissionBC ) { // Neumann boundary conditions (traction)        int numberOfEdgeIPs = ( int ) ceil( ( load->giveApproxOrder() + 1. ) / 2. ) * 2;        GaussIntegrationRule iRule(1, this, 1, 1);        FloatArray N, t, f(6);        f.zero();        iRule.SetUpPointsOnLine(numberOfEdgeIPs, _Unknown);        for ( GaussPoint *gp: iRule ) {            const FloatArray &lcoords = gp->giveNaturalCoordinates();            this->interpolation_quad.edgeEvalN( N, boundary, lcoords, FEIElementGeometryWrapper(this) );            double detJ = fabs( this->interpolation_quad.boundaryGiveTransformationJacobian( boundary, lcoords, FEIElementGeometryWrapper(this) ) );            double dS = gp->giveWeight() * detJ;            if ( load->giveFormulationType() == Load :: FT_Entity ) { // Edge load in xi-eta system                load->computeValueAt(t, tStep, lcoords, VM_Total);            } else { // Edge load in x-y system                FloatArray gcoords;                this->interpolation_quad.boundaryLocal2Global( gcoords, boundary, lcoords, FEIElementGeometryWrapper(this) );                load->computeValueAt(t, tStep, gcoords, VM_Total);            }            // Reshape the vector            for ( int j = 0; j < 3; j++ ) {                f(2 * j)     += N(j) * t(0) * dS;                f(2 * j + 1) += N(j) * t(1) * dS;            }        }        answer.resize(15);        answer.zero();        answer.assemble(f, this->edge_ordering [ boundary - 1 ]);    } else {        OOFEM_ERROR("Strange boundary condition type");    }}
开发者ID:aishugang,项目名称:oofem,代码行数:46,


示例23: computeNmatrixAt

voidQTRSpace :: computeNmatrixAt(GaussPoint *aGaussPoint, FloatMatrix &answer)// Returns the displacement interpolation matrix {N} of the receiver, eva-// luated at aGaussPoint.{    FloatArray n(10);    answer.resize(3, 30);    answer.zero();    this->interpolation.evalN(n, * aGaussPoint->giveCoordinates(), FEIElementGeometryWrapper(this));    for ( int i = 1; i <= 10; i++ ) {        answer.at(1, 3 * i - 2) = n.at(i);        answer.at(2, 3 * i - 1) = n.at(i);        answer.at(3, 3 * i - 0) = n.at(i);    }}
开发者ID:Benjamin-git,项目名称:OOFEM_LargeDef,代码行数:18,


示例24: computeBmatrixAt

voidTruss3d :: computeBmatrixAt(GaussPoint *gp, FloatMatrix &answer, int li, int ui)//// Returns linear part of geometrical equations of the receiver at gp.// Returns the linear part of the B matrix//{    FloatMatrix dN;    this->interp.evaldNdx(dN, *gp->giveCoordinates(), FEIElementGeometryWrapper(this));    answer.resize(1, 6);    answer.at(1, 1) = dN.at(1,1);    answer.at(1, 2) = dN.at(1,2);    answer.at(1, 3) = dN.at(1,3);    answer.at(1, 4) = dN.at(2,1);    answer.at(1, 5) = dN.at(2,2);    answer.at(1, 6) = dN.at(2,3);}
开发者ID:JimBrouzoulis,项目名称:OOFEM_LargeDef,代码行数:18,


示例25: computeNmatrixAt

voidQTrPlaneStrain :: computeNmatrixAt(GaussPoint *aGaussPoint, FloatMatrix &answer)// Returns the displacement interpolation matrix {N} of the receiver, eva-// luated at aGaussPoint.{    int i;    FloatArray n(6);    answer.resize(2, 12);    answer.zero();    this->interpolation.evalN( n, * aGaussPoint->giveCoordinates(), FEIElementGeometryWrapper(this) );    for ( i = 1; i <= 6; i++ ) {        answer.at(1, 2 * i - 1) = n.at(i);        answer.at(2, 2 * i - 0) = n.at(i);    }}
开发者ID:JimBrouzoulis,项目名称:oofem-1,代码行数:18,


示例26: computeBmatrixAt

voidLineDistributedSpring :: computeBmatrixAt(GaussPoint *gp, FloatMatrix &answer, int li, int ui)// Returns the [3x3] strain-displacement matrix {B} of the receiver,// evaluated at gp.{    FloatArray n;    int ndofs = this->dofs.giveSize();    this->interp_lin.evalN( n, gp->giveNaturalCoordinates(),  FEIElementGeometryWrapper(this) );    answer.resize(ndofs, ndofs*2);    answer.zero();    for (int idof=1; idof<=ndofs; idof++) {      answer.at(idof, idof) = n.at(1);       answer.at(idof, ndofs+idof) = n.at(2);     }}
开发者ID:erisve,项目名称:oofem,代码行数:18,


示例27: computeUDotGradUMatrix

voidQuad10_2D_SUPG :: computeUDotGradUMatrix(FloatMatrix &answer, GaussPoint *gp, TimeStep *tStep){    FloatMatrix n, dn;    FloatArray u, un;    this->velocityInterpolation.evaldNdx( dn, gp->giveNaturalCoordinates(), FEIElementGeometryWrapper(this) );    this->computeNuMatrix(n, gp);    this->computeVectorOfVelocities(VM_Total, tStep, un);    u.beProductOf(n, un);    answer.resize(2, 8);    answer.zero();    for ( int i = 1; i <= 4; i++ ) {        answer.at(1, 2 * i - 1) = dn.at(i, 1) * u.at(1) + dn.at(i, 2) * u.at(2);        answer.at(2, 2 * i)     = dn.at(i, 1) * u.at(1) + dn.at(i, 2) * u.at(2);    }}
开发者ID:rainbowlqs,项目名称:oofem,代码行数:18,



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


C++ FELICA_DEBUG_MSG函数代码示例
C++ FEH_FILE函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。