BoundingSurface2D::BoundingSurface2D(int tag, int classTag, double min_iso_factor, double iso_ratio, double kin_ratio, PlasticHardeningMaterial &kpx, PlasticHardeningMaterial &kpy, YieldSurface_BC &bound_surface) :YS_Evolution2D(tag, classTag, min_iso_factor, iso_ratio, kin_ratio) { kpMatX = kpx.getCopy(); kpMatY = kpy.getCopy(); boundSurface = bound_surface.getCopy(); }
PlasticHardening2D::PlasticHardening2D(int tag, int classTag, double min_iso_factor, double iso_ratio, double kin_ratio, PlasticHardeningMaterial &kpx_pos, PlasticHardeningMaterial &kpx_neg, PlasticHardeningMaterial &kpy_pos, PlasticHardeningMaterial &kpy_neg, double dir) :YS_Evolution2D(tag, classTag, min_iso_factor, iso_ratio, kin_ratio), direction(dir), defPosX(true), defPosY(true) { if (dir < -1.0 || dir > 1.0) { opserr << "WARNING: PlasticHardening2D() - Dir should be between -1 and +1\n"; opserr << "Set to 0 \n"; direction = 0.0; } kpMatXPos = kpx_pos.getCopy(); kpMatXNeg = kpx_neg.getCopy(); kpMatYPos = kpy_pos.getCopy(); kpMatYNeg = kpy_neg.getCopy(); }
BkStressLimSurface2D::BkStressLimSurface2D(int tag, int classTag, double min_iso_factor, double iso_ratio, double kin_ratio, YieldSurface_BC &lim_surface, PlasticHardeningMaterial &kinX, PlasticHardeningMaterial &kinY, PlasticHardeningMaterial &isoXPos, PlasticHardeningMaterial &isoXNeg, PlasticHardeningMaterial &isoYPos, PlasticHardeningMaterial &isoYNeg, int restype, double res_Fact, double app_Fact, double dir ) :YS_Evolution2D(tag, classTag, min_iso_factor, iso_ratio, kin_ratio), defPosX(true), defPosY(true), resAlgo(restype), resFactor(res_Fact), appFactor(app_Fact), direction(dir), direction_orig(dir) { if (dir < -1.0 ) { opserr << "WARNING: BkStressLimSurface2D() - Dir should be between -1 and +1\n"; opserr << "Set to variable \n"; direction_orig = 10; } if(direction_orig > 1) direction = 0.0; kinMatX = kinX.getCopy(); kinMatY = kinY.getCopy(); isoMatXPos = isoXPos.getCopy(); isoMatXNeg = isoXNeg.getCopy(); isoMatYPos = isoYPos.getCopy(); isoMatYNeg = isoYNeg.getCopy(); // don't really need a copy for kinMats /LimSurface because only getDrift() is used // even if the user reuses.. a separate copy will be created // that said .. limSurface = lim_surface.getCopy(); limSurface->setTransformation(0, 1, 1, 1); }