Esempio n. 1
0
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();
}
Esempio n. 2
0
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();
}
Esempio n. 3
0
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);
}