コード例 #1
0
ファイル: rotatingboundary.C プロジェクト: rreissnerr/oofem
void
RotatingBoundary :: giveInputRecord(DynamicInputRecord &input)
{
    GeneralBoundaryCondition :: giveInputRecord(input);
    input.setField(this->axis, _IFT_RotatingBoundary_axis);
    input.setField(this->center, _IFT_RotatingBoundary_center);
}
コード例 #2
0
ファイル: trabbonenl3d.C プロジェクト: nitramkaroh/OOFEM
void
TrabBoneNL3D :: giveInputRecord(DynamicInputRecord &input)
{
    TrabBone3D :: giveInputRecord(input);
    input.setField(this->R, _IFT_TrabBoneNL3D_r);
    input.setField(this->mParam, _IFT_TrabBoneNL3D_m);
}
コード例 #3
0
ファイル: propagationlaw.C プロジェクト: Micket/oofem
void PLnodeRadius :: giveInputRecord(DynamicInputRecord &input)
{
    int number = 1;
    input.setRecordKeywordField(this->giveInputRecordName(), number);

    input.setField(mRadius, _IFT_PLnodeRadius_Radius);
}
コード例 #4
0
void PrescribedGradientBCPeriodic :: giveInputRecord(DynamicInputRecord &input)
{
    ActiveBoundaryCondition :: giveInputRecord(input);
    PrescribedGradientHomogenization :: giveInputRecord(input);
    input.setField(this->masterSet, _IFT_PrescribedGradientBCPeriodic_masterSet);
    input.setField(this->jump, _IFT_PrescribedGradientBCPeriodic_jump);
}
コード例 #5
0
ファイル: trabbonenl.C プロジェクト: rainbowlqs/oofem
void
TrabBoneNL :: giveInputRecord(DynamicInputRecord &input)
{
    TrabBoneMaterial :: giveInputRecord(input);
    input.setField(this->R, _IFT_TrabBoneNL_r);
    input.setField(this->mParam, _IFT_TrabBoneNL_m);
}
コード例 #6
0
void
SolutionbasedShapeFunction :: setLoads(EngngModel *myEngngModel, int d)
{
    DynamicInputRecord ir;
    FloatArray gradP;

    gradP.resize( this->giveDomain()->giveNumberOfSpatialDimensions() );
    gradP.zero();
    gradP.at(d) = 1.0;

    ir.setRecordKeywordField("deadweight", 1);
    ir.setField(gradP, _IFT_Load_components);
    ir.setField(1, _IFT_GeneralBoundaryCondition_timeFunct);

    int bcID = myEngngModel->giveDomain(1)->giveNumberOfBoundaryConditions() + 1;
    GeneralBoundaryCondition *myBodyLoad;
    myBodyLoad = classFactory.createBoundaryCondition( "deadweight", bcID, myEngngModel->giveDomain(1) );
    myBodyLoad->initializeFrom(& ir);
    myEngngModel->giveDomain(1)->setBoundaryCondition(bcID, myBodyLoad);

    for ( int i = 1; i <= myEngngModel->giveDomain(1)->giveNumberOfElements(); i++ ) {
        IntArray *blArray;
        blArray = myEngngModel->giveDomain(1)->giveElement(i)->giveBodyLoadArray();
        blArray->resizeWithValues(blArray->giveSize() + 1);
        blArray->at( blArray->giveSize() ) = bcID;
    }
}
コード例 #7
0
void
NonlinearFluidMaterial :: giveInputRecord(DynamicInputRecord &input)
{
    FluidDynamicMaterial :: giveInputRecord(input);
    input.setField(this->viscosity, _IFT_NonlinearFluidMaterial_mu);
    input.setField(this->alpha, _IFT_NonlinearFluidMaterial_alpha);
    input.setField(this->c, _IFT_NonlinearFluidMaterial_C);
}
コード例 #8
0
void PLCrackPrescribedDir :: giveInputRecord(DynamicInputRecord &input)
{
	int number = 1;
    input.setRecordKeywordField(this->giveInputRecordName(), number);

    input.setField(mAngle			, _IFT_PLCrackPrescribedDir_Dir);
    input.setField(mIncrementLength	, _IFT_PLCrackPrescribedDir_IncLength);
}
コード例 #9
0
ファイル: abaqususermaterial.C プロジェクト: aishugang/oofem
void AbaqusUserMaterial :: giveInputRecord(DynamicInputRecord &input)
{
    StructuralMaterial :: giveInputRecord(input);

    input.setField(this->numState, _IFT_AbaqusUserMaterial_numState);
    input.setField(this->properties, _IFT_AbaqusUserMaterial_properties);
    input.setField(this->filename, _IFT_AbaqusUserMaterial_userMaterial);
    input.setField(std::string(this->cmname), _IFT_AbaqusUserMaterial_name);
}
コード例 #10
0
ファイル: tutorialmaterial.C プロジェクト: erisve/oofem
void
TutorialMaterial :: giveInputRecord(DynamicInputRecord &ir)
{
    StructuralMaterial :: giveInputRecord(ir);
    D.giveInputRecord(ir);
    
    ir.setField(this->sig0, _IFT_TutorialMaterial_yieldstress);
    ir.setField(this->H, _IFT_TutorialMaterial_hardeningmoduli);
}
コード例 #11
0
void
SimpleInterfaceMaterial :: giveInputRecord(DynamicInputRecord &input)
{
    StructuralMaterial :: giveInputRecord(input);
    input.setField(this->kn, _IFT_SimpleInterfaceMaterial_kn);
    input.setField(this->frictCoeff, _IFT_SimpleInterfaceMaterial_frictCoeff);
    input.setField(this->stiffCoeff, _IFT_SimpleInterfaceMaterial_stiffCoeff);
    input.setField(this->normalClearance, _IFT_SimpleInterfaceMaterial_normalClearance);
}
コード例 #12
0
ファイル: plmaterialforce.C プロジェクト: erisve/oofem
void PLMaterialForce :: giveInputRecord(DynamicInputRecord &input)
{
    int number = 1;
    input.setRecordKeywordField(this->giveInputRecordName(), number);

    input.setField(mRadius,                     _IFT_PLMaterialForce_Radius);
    input.setField(mIncrementLength,            _IFT_PLMaterialForce_IncLength);
    input.setField(mCrackPropThreshold,         _IFT_PLMaterialForce_CrackPropThreshold);
}
コード例 #13
0
ファイル: cohint.C プロジェクト: aishugang/oofem
void
CohesiveInterfaceMaterial :: giveInputRecord(DynamicInputRecord &input)
{
    StructuralInterfaceMaterial :: giveInputRecord(input);
    input.setField(this->kn, _IFT_CohesiveInterfaceMaterial_kn);
    input.setField(this->ks, _IFT_CohesiveInterfaceMaterial_ks);
    input.setField(this->stiffCoeffKn, _IFT_CohesiveInterfaceMaterial_stiffCoeffKn);
    input.setField(this->stiffCoeffKn, _IFT_CohesiveInterfaceMaterial_transitionopening);
}
コード例 #14
0
void
IntMatCoulombContact :: giveInputRecord(DynamicInputRecord &input)
{
    StructuralInterfaceMaterial :: giveInputRecord(input);
    input.setField(this->kn, _IFT_IntMatCoulombContact_kn);
    input.setField(this->frictCoeff, _IFT_IntMatCoulombContact_frictCoeff);
    input.setField(this->stiffCoeff, _IFT_IntMatCoulombContact_stiffCoeff);
    input.setField(this->normalClearance, _IFT_IntMatCoulombContact_normalClearance);
}
コード例 #15
0
void TransportGradientPeriodic :: giveInputRecord(DynamicInputRecord &input)
{
    ActiveBoundaryCondition :: giveInputRecord(input);
    //PrescribedGradientHomogenization :: giveInputRecord(input);
    input.setField(this->mGradient, _IFT_TransportGradientPeriodic_gradient);
    input.setField(this->mCenterCoord, _IFT_TransportGradientPeriodic_centerCoords);
    
    input.setField(this->masterSet, _IFT_TransportGradientPeriodic_masterSet);
    input.setField(this->jump, _IFT_TransportGradientPeriodic_jump);
}
コード例 #16
0
void
IsotropicLinearElasticMaterial :: giveInputRecord(DynamicInputRecord &input)
{
    this->LinearElasticMaterial :: giveInputRecord(input);
    StructuralMaterial :: giveInputRecord(input);

    input.setField(this->E, _IFT_IsotropicLinearElasticMaterial_e);
    input.setField(this->nu, _IFT_IsotropicLinearElasticMaterial_n);
    input.setField(this->propertyDictionary->at(tAlpha), _IFT_IsotropicLinearElasticMaterial_talpha);
}
コード例 #17
0
void
StructuralFE2Material :: giveInputRecord(DynamicInputRecord &input)
{
    StructuralMaterial :: giveInputRecord(input);
    input.setField(this->inputfile, _IFT_StructuralFE2Material_fileName);

    if ( useNumTangent ) {
        input.setField(_IFT_StructuralFE2Material_useNumericalTangent);
    }
}
コード例 #18
0
ファイル: boundaryload.C プロジェクト: vivianyw/oofem
void
BoundaryLoad :: giveInputRecord(DynamicInputRecord &input)
{
    Load :: giveInputRecord(input);
    input.setField(this->nDofs, _IFT_BoundaryLoad_ndofs);
    input.setField(this->lType, _IFT_BoundaryLoad_loadtype);
    input.setField(this->coordSystemType, _IFT_BoundaryLoad_cstype);
    input.setField(this->propertyDictionary, _IFT_BoundaryLoad_properties);
    input.setField(this->propertyTimeFunctDictionary, _IFT_BoundaryLoad_propertyTimeFunctions);
}
コード例 #19
0
ファイル: bondceb.C プロジェクト: vivianyw/oofem
void
BondCEBMaterial :: giveInputRecord(DynamicInputRecord &input)
{
    StructuralMaterial :: giveInputRecord(input);

    input.setField(this->kn, _IFT_BondCEBMaterial_kn);
    input.setField(this->ks, _IFT_BondCEBMaterial_ks);
    input.setField(this->s1, _IFT_BondCEBMaterial_s1);
    input.setField(this->s2, _IFT_BondCEBMaterial_s2);
    input.setField(this->s3, _IFT_BondCEBMaterial_s3);
    input.setField(this->taumax, _IFT_BondCEBMaterial_taumax);
}
コード例 #20
0
void DofManList :: giveInputRecord(DynamicInputRecord &input)
{
    input.setRecordKeywordField(this->giveInputRecordName(), 1);

	IntArray idList;
	idList.resize(dofManList.size());
    for ( size_t i = 0; i < dofManList.size(); i++ ) {
    	idList.at(i+1) = dofManList[i];
    }

    input.setField(idList, _IFT_DofManList_list);
}
コード例 #21
0
void
Delamination :: appendInputRecords(DynamicDataReader &oDR)
{
    ///@todo almost everything is copied from EnrichmentItem :: giveInputRecord, should be written in a better way
    DynamicInputRecord *eiRec = new DynamicInputRecord();
    FEMComponent :: giveInputRecord(* eiRec);

    eiRec->setField(mEnrFrontIndex,                     _IFT_EnrichmentItem_front);
    eiRec->setField(mPropLawIndex,                      _IFT_EnrichmentItem_propagationlaw);

    // Delamination specific records
    eiRec->setField(this->interfaceNum, _IFT_Delamination_interfacenum);
    eiRec->setField(this->crossSectionNum, _IFT_Delamination_csnum);
    eiRec->setField(this->matNum, _IFT_Delamination_CohesiveZoneMaterial);


    oDR.insertInputRecord(DataReader :: IR_enrichItemRec, eiRec);

    // Enrichment function
    DynamicInputRecord *efRec = new DynamicInputRecord();
    mpEnrichmentFunc->giveInputRecord(* efRec);
    oDR.insertInputRecord(DataReader :: IR_enrichFuncRec, efRec);


    // Enrichment domain

    DynamicInputRecord *geoRec = new DynamicInputRecord();
    geoRec->setRecordKeywordField(this->giveInputRecordName(), 1);

    IntArray idList;
    idList.resize( dofManList.size() );
    for ( size_t i = 0; i < dofManList.size(); i++ ) {
        idList.at(i + 1) = dofManList [ i ];
    }

    geoRec->setField(idList, _IFT_ListBasedEI_list);

    oDR.insertInputRecord(DataReader :: IR_geoRec, geoRec);

    // Enrichment front
    if ( mEnrFrontIndex != 0 ) {
        DynamicInputRecord *efrRecStart = new DynamicInputRecord();
        mpEnrichmentFrontStart->giveInputRecord(* efrRecStart);
        oDR.insertInputRecord(DataReader :: IR_enrichFrontRec, efrRecStart);

        DynamicInputRecord *efrRecEnd = new DynamicInputRecord();
        mpEnrichmentFrontEnd->giveInputRecord(* efrRecEnd);
        oDR.insertInputRecord(DataReader :: IR_enrichFrontRec, efrRecEnd);
    }

    if ( mPropLawIndex != 0 ) {
        // Propagation law
        DynamicInputRecord *plRec = new DynamicInputRecord();
        this->mpPropagationLaw->giveInputRecord(* plRec);
        oDR.insertInputRecord(DataReader :: IR_propagationLawRec, plRec);
    }
}
コード例 #22
0
void
IntMatIsoDamage :: giveInputRecord(DynamicInputRecord &input)
{
    StructuralInterfaceMaterial :: giveInputRecord(input);

    input.setField(this->kn, _IFT_IntMatIsoDamage_kn);
    input.setField(this->ks, _IFT_IntMatIsoDamage_ks);

    input.setField(this->ft, _IFT_IntMatIsoDamage_ft);
    input.setField(this->gf, _IFT_IntMatIsoDamage_gf);

    input.setField(this->maxOmega, _IFT_IntMatIsoDamage_maxOmega);
}
コード例 #23
0
void
OrthotropicLinearElasticMaterial :: giveInputRecord(DynamicInputRecord &input)
{
    Material :: giveInputRecord(input);


    input.setField(propertyDictionary.at(Ex), _IFT_OrthotropicLinearElasticMaterial_ex);
    input.setField(propertyDictionary.at(Ey), _IFT_OrthotropicLinearElasticMaterial_ey);
    input.setField(propertyDictionary.at(Ez), _IFT_OrthotropicLinearElasticMaterial_ez);

    input.setField(propertyDictionary.at(NYyz), _IFT_OrthotropicLinearElasticMaterial_nyyz);
    input.setField(propertyDictionary.at(NYxz), _IFT_OrthotropicLinearElasticMaterial_nyxz);
    input.setField(propertyDictionary.at(NYxy), _IFT_OrthotropicLinearElasticMaterial_nyxy);

    input.setField(propertyDictionary.at(Gyz), _IFT_OrthotropicLinearElasticMaterial_gyz);
    input.setField(propertyDictionary.at(Gxz), _IFT_OrthotropicLinearElasticMaterial_gxz);
    input.setField(propertyDictionary.at(Gxy), _IFT_OrthotropicLinearElasticMaterial_gxy);

    input.setField(propertyDictionary.at(tAlphax), _IFT_OrthotropicLinearElasticMaterial_talphax);
    input.setField(propertyDictionary.at(tAlphay), _IFT_OrthotropicLinearElasticMaterial_talphay);
    input.setField(propertyDictionary.at(tAlphaz), _IFT_OrthotropicLinearElasticMaterial_talphaz);


    ///@todo Should add optional arguments:
    // _IFT_OrthotropicLinearElasticMaterial_lcs
    // _IFT_OrthotropicLinearElasticMaterial_scs
}
コード例 #24
0
void
IsoInterfaceDamageMaterial :: giveInputRecord(DynamicInputRecord &input)
{
    StructuralMaterial :: giveInputRecord(input);

    input.setField(this->kn, _IFT_IsoInterfaceDamageMaterial_kn);
    input.setField(this->ks, _IFT_IsoInterfaceDamageMaterial_ks);

    input.setField(this->ft, _IFT_IsoInterfaceDamageMaterial_ft);
    input.setField(this->gf, _IFT_IsoInterfaceDamageMaterial_gf);

    input.setField(this->maxOmega, _IFT_IsoInterfaceDamageMaterial_maxOmega);
    input.setField(this->tempDillatCoeff, _IFT_IsoInterfaceDamageMaterial_talpha);
}
コード例 #25
0
ファイル: geometry.C プロジェクト: Benjamin-git/OOFEM_Jim
void PolygonLine :: giveInputRecord(DynamicInputRecord &input)
{
    input.setRecordKeywordField( "PolygonLine", 1 );

    FloatArray points;
    int nVert = mVertices.size();
    points.resize(nVert * 2);

    for ( int i = 0; i < nVert; i++ ) {
        points.at(2 * i + 1) = mVertices [ i ].at(1);
        points.at(2 * i + 2) = mVertices [ i ].at(2);
    }

    input.setField(points, _IFT_PolygonLine_points);
}
コード例 #26
0
void
AnisotropicLinearElasticMaterial :: giveInputRecord(DynamicInputRecord &input)
{
    Material :: giveInputRecord(input);
    FloatArray stiffness(21);
    int k = 1;
    for ( int i = 1; i <= 6; i++ ) {
        for ( int j = i; j <= 6; j++ ) {
            stiffness.at(k++) = stiffmat.at(i, j);
        }
    }
    input.setField(stiffness, _IFT_AnisotropicLinearElasticMaterial_stiff);

    input.setField(alpha, _IFT_AnisotropicLinearElasticMaterial_talpha);
}
コード例 #27
0
void XfemStructureManager :: giveInputRecord(DynamicInputRecord &input)
{
    XfemManager :: giveInputRecord(input);

    if ( mSplitCracks ) {
        input.setField(1, _IFT_XfemStructureManager_splitCracks);
    }

    input.setField(mMinCrackLength, _IFT_XfemStructureManager_minCrackLength);

    input.setField(mCrackMergeTol, _IFT_XfemStructureManager_crackMergeTol);

    if( mNonstandardCz ) {
        input.setField(1, _IFT_XfemStructureManager_nonstandardCZ);
    }
}
コード例 #28
0
ファイル: misesmatnl.C プロジェクト: vivianyw/oofem
void
MisesMatNl :: giveInputRecord(DynamicInputRecord &input)
{
    StructuralMaterial :: giveInputRecord(input);
    StructuralNonlocalMaterialExtensionInterface :: giveInputRecord(input);

    input.setField(averType, _IFT_MisesMatNl_averagingtype);

    if ( averType == 2 || averType == 3 ) {
        input.setField(exponent, _IFT_MisesMatNl_exp);
    }

    if ( averType >= 2 && averType <= 5 ) {
        input.setField(Rf, _IFT_MisesMatNl_rf);
    }
}
コード例 #29
0
ファイル: fluidcrosssection.C プロジェクト: Micket/oofem
void
FluidCrossSection :: giveInputRecord(DynamicInputRecord &input)
{
    CrossSection :: giveInputRecord(input);

    input.setField(this->matNumber, _IFT_FluidCrossSection_material);
}
コード例 #30
0
ファイル: cohint.C プロジェクト: Benjamin-git/OOFEM_LargeDef
void
CohesiveInterfaceMaterial :: giveInputRecord(DynamicInputRecord &input)
{
    StructuralMaterial :: giveInputRecord(input);
    //input.setField(this->tempDillatCoeff, _IFT_CohesiveInterfaceMaterial_temperatureDillationCoeff);
    input.setField(this->kn, _IFT_IsoInterfaceDamageMaterial_kn);
    input.setField(this->ks, _IFT_IsoInterfaceDamageMaterial_ks);
}