← Back to team overview

yade-dev team mailing list archive

[Branch ~yade-dev/yade/trunk] Rev 1938: 1. Fix examples/concrete/periodic.py

 

------------------------------------------------------------
revno: 1938
committer: Václav Šmilauer <eudoxos@xxxxxxxx>
branch nick: trunk
timestamp: Mon 2010-01-04 13:31:16 +0100
message:
  1. Fix examples/concrete/periodic.py
  2. Fix (partially) scaling of periodic cell resize in OpenGL
modified:
  examples/concrete/periodic.py
  pkg/common/RenderingEngine/OpenGLRenderingEngine.cpp


--
lp:yade
https://code.launchpad.net/~yade-dev/yade/trunk

Your team Yade developers is subscribed to branch lp:yade.
To unsubscribe from this branch go to https://code.launchpad.net/~yade-dev/yade/trunk/+edit-subscription.
=== modified file 'examples/concrete/periodic.py'
--- examples/concrete/periodic.py	2010-01-04 10:34:53 +0000
+++ examples/concrete/periodic.py	2010-01-04 12:31:16 +0000
@@ -43,8 +43,8 @@
 	relDuctility=30,
 
 	intRadius=1.5,
-	dtSafety=.8,
-	damping=0.4,
+	dtSafety=.4,
+	damping=0.2,
 	strainRateTension=10,
 	strainRateCompression=50,
 	# 1=tension, 2=compression (ANDed; 3=both)
@@ -105,7 +105,7 @@
 	#
 	#UniaxialStrainer(strainRate=strainRateTension,axis=axis,asymmetry=0,posIds=posIds,negIds=negIds,crossSectionArea=crossSectionArea,blockDisplacements=False,blockRotations=False,setSpeeds=setSpeeds,label='strainer'),
 	#
-	PeriTriaxController(goal=[1,1,1],stressMask=( (7^(1<<axis | 1<<ax1)) if biaxial else (7^(1<<axis)) ),maxStrainRate=Vector3(5,5,5),label='strainer',reversedForces=False,globUpdate=2),
+	PeriTriaxController(goal=[1,1,1],stressMask=( (7^(1<<axis | 1<<ax1)) if biaxial else (7^(1<<axis)) ),label='strainer',reversedForces=False,globUpdate=2),
 	PeriodicPythonRunner(virtPeriod=1e-5/strainRateTension,realLim=2,command='addPlotData()',label='plotDataCollector'),
 	PeriodicPythonRunner(realPeriod=4,command='stopIfDamaged()',label='damageChecker'),
 ]
@@ -127,26 +127,25 @@
 		O.wait();
 		O.loadTmp('initial')
 		print "Reversing plot data"; plot.reverseData()
-	maxStrainRate=Vector3(1,1,1)
+	maxStrainRate=Vector3(1,1,1);
 	goal=Vector3(1,1,1);
 	if not biaxial: # uniaxial
 		maxStrainRate[axis]=abs(strainRateTension) if mode=='tension' else abs(strainRateCompression)
-		maxStrainRate[ax1]=maxStrainRate[ax2]=100*maxStrainRate[axis]
+		maxStrainRate[ax1]=maxStrainRate[ax2]=1000*maxStrainRate[axis]
 		goal[axis]=1 if mode=='tension' else -1;
 	else:
 		maxStrainRate[axis]=abs(strainRateTension) if mode=='tension' else abs(strainRateCompression)
 		maxStrainRate[ax1]=maxStrainRate[axis]
-		maxStrainRate[ax2]=100*maxStrainRate[axis]
+		maxStrainRate[ax2]=1000*maxStrainRate[axis]
 		goal[axis]=1 if mode=='tension' else -1;
 		goal[ax1]=goal[axis]
 	strainer['maxStrainRate']=maxStrainRate
 	strainer['goal']=goal
 	try:
-		pass
-		#from yade import qt
-		#renderer=qt.Renderer()
-		#renderer['scaleDisplacements']=True
-		#renderer['displacementScale']=(1000,1000,1000) if mode=='tension' else (100,100,100)
+		from yade import qt
+		renderer=qt.Renderer()
+		renderer['scaleDisplacements']=True
+		renderer['displacementScale']=(1000,1000,1000) if mode=='tension' else (100,100,100)
 	except ImportError: pass
 	print "init done, will now run."
 	O.step(); O.step(); # to create initial contacts

=== modified file 'pkg/common/RenderingEngine/OpenGLRenderingEngine.cpp'
--- pkg/common/RenderingEngine/OpenGLRenderingEngine.cpp	2009-12-30 17:38:37 +0000
+++ pkg/common/RenderingEngine/OpenGLRenderingEngine.cpp	2010-01-04 12:31:16 +0000
@@ -139,7 +139,7 @@
 	glColor3v(Vector3r(1,1,0));
 	glPushMatrix();
 		Vector3r size=scene->cell->getSize();
-		if(scaleDisplacements) size=diagMult(displacementScale,size);
+		if(scaleDisplacements) size+=diagMult(displacementScale,size-scene->cell->refSize);
 		glTranslatev(scene->cell->shearPt(.5*size)); // shear center (moves when sheared)
 		glMultMatrixd(scene->cell->getGlShearTrsfMatrix());
 		glScalev(size);