[SCM] Packaging for ESyS-Particle - Open Source software for particle-based numerical modelling branch, experimental, updated. upstream/2.2-47-gcd1a772

Anton Gladky gladky.anton at gmail.com
Sun Dec 30 23:22:10 UTC 2012


The following commit has been merged in the experimental branch:
commit 5d0df749f981215f1d9284cbbe73caddd033aa89
Author: Anton Gladky <gladky.anton at gmail.com>
Date:   Sun Dec 30 21:14:20 2012 +0100

    Enable autotests.

diff --git a/debian/control b/debian/control
index b5abf87..6d129ff 100644
--- a/debian/control
+++ b/debian/control
@@ -4,7 +4,7 @@ Priority: extra
 Build-Depends: debhelper (>= 9), libtool (>= 1.5.2), automake (>= 1.8.2), 
  autoconf (>= 2.59), libltdl7-dev, libboost-dev, libboost-iostreams-dev, 
  libcppunit-dev, python-epydoc, autotools-dev, libboost-all-dev,
- mpi-default-bin, mpi-default-dev, libvtk5-dev, doxygen
+ mpi-default-bin, mpi-default-dev, libvtk5-dev, doxygen, python-demgengeo
 Maintainer: Debian Science Maintainers <debian-science-maintainers at lists.alioth.debian.org>
 Uploaders:  Anton Gladky <gladky.anton at gmail.com>
 Standards-Version: 3.9.4
diff --git a/debian/esys-particle.docs b/debian/esys-particle.docs
index 84637c9..25d109e 100644
--- a/debian/esys-particle.docs
+++ b/debian/esys-particle.docs
@@ -1,2 +1,2 @@
 Doc
-debian/tmp/usr/share/doc/esys-particle-2.2/pythonapi
+debian/esys-particle/usr/share/doc/esys-particle-2.2/pythonapi
diff --git a/debian/esys-particle.install b/debian/esys-particle.install
deleted file mode 100644
index f6bbeb6..0000000
--- a/debian/esys-particle.install
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/bin/ usr
-usr/lib/ usr
diff --git a/debian/rules b/debian/rules
index f190fab..fb29f4c 100755
--- a/debian/rules
+++ b/debian/rules
@@ -4,12 +4,17 @@ DESTDIR = $(CURDIR)/debian/tmp
 %:
 	dh $@ --parallel
 
+export OMPI_MCA_plm_rsh_agent=/bin/false                #workaround to start MPI-applications in chroot
+export LD_LIBRARY_PATH :=  $(CURDIR)/debian/esys-particle/usr/lib/${DEB_HOST_MULTIARCH}/:$(CURDIR)/debian/esys-particle/usr/lib/python2.7/dist-packages/esys/lsm/util/:$(CURDIR)/debian/esys-particle/usr/lib/python2.7/dist-packages/esys/lsm/:$(LD_LIBRARY_PATH);
+
+export PYTHONPATH := $(CURDIR)/debian/esys-particle/usr/lib/python2.7/dist-packages/:$(PYTHONPATH);
+
 CFLAGS := -Wall $(shell dpkg-buildflags --get CFLAGS)
 CXXFLAGS := -Wall $(shell dpkg-buildflags --get CXXFLAGS)
 CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS)
 LDFLAGS := -lboost_system $(shell dpkg-buildflags --get LDFLAGS)
 
-extra_flags += CFLAGS='$(CFLAGS)' CXXFLAGS='$(CXXFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' --with-epydoc
+extra_flags += CFLAGS='$(CFLAGS)' CXXFLAGS='$(CXXFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' --with-epydoc --with-vtk
 
 override_dh_auto_clean:
 	[ ! -f Makefile ] || $(MAKE) distclean
@@ -32,3 +37,8 @@ override_dh_auto_build:
 	doxygen
 
 override_dh_pysupport:
+
+override_dh_auto_install:
+	dh_auto_install
+	cd $(CURDIR)/debian/test; python box.py 15.0
+	cd $(CURDIR)/debian/test; mpirun -np 3 $(CURDIR)/debian/esys-particle/usr/bin/esysparticle compression.py
diff --git a/debian/test/box.py b/debian/test/box.py
new file mode 100755
index 0000000..68c6fe1
--- /dev/null
+++ b/debian/test/box.py
@@ -0,0 +1,53 @@
+from gengeo import *
+import sys
+
+xdim=float(sys.argv[1])
+ydim=xdim*2.0
+zdim=xdim
+
+maxRadius=1.0
+minPoint=Vector3(0.0,0.0,0.0)
+maxPoint=Vector3(xdim,ydim,zdim)
+
+box=BoxWithPlanes3D (
+  minPoint=minPoint,
+  maxPoint=maxPoint
+)
+
+box.addPlane(Plane(minPoint,Vector3(1.0,0.0,0.0)))
+box.addPlane(Plane(minPoint,Vector3(0.0,1.0,0.0)))
+box.addPlane(Plane(minPoint,Vector3(0.0,0.0,1.0)))
+box.addPlane(Plane(minPoint,Vector3(-1.0,0.0,0.0)))
+box.addPlane(Plane(minPoint,Vector3(0.0,-1.0,0.0)))
+box.addPlane(Plane(minPoint,Vector3(0.0,0.0,-1.0)))
+
+mntable=MNTable3D (
+  minPoint=minPoint,
+  maxPoint=maxPoint,
+  gridSize=2.5*maxRadius,
+  numGroups=1
+)
+
+packer=InsertGenerator3D(
+  minRadius=0.2,
+  maxRadius=maxRadius,
+  insertFails=1000,
+  maxIterations=1000,
+  tolerance=1.0e-6,
+  seed=1
+)
+
+packer.generatePacking (
+  volume=box,
+  ntable=mntable,
+  groupID=0
+)
+
+mntable.generateBonds (
+  groupID=0,
+  tolerance=1.0e-5,
+  bondID=0
+)
+
+mntable.write("box"+str(ydim)+".geo",1)
+mntable.write("box"+str(ydim)+".vtu",2)
diff --git a/debian/test/compression.py b/debian/test/compression.py
new file mode 100755
index 0000000..22a39a5
--- /dev/null
+++ b/debian/test/compression.py
@@ -0,0 +1,211 @@
+from esys.lsm import *
+from esys.lsm.util import *
+
+class Loading (Runnable):
+  def __init__(self,lsm,dx,t0,t1):
+    Runnable.__init__(self)
+    self.theLSM=lsm
+    self.dx=dx
+    self.ddx=self.dx/(t1-t0)
+    self.t1=t1
+    self.t0=0
+    self.count=0
+    
+  def run(self):
+    self.count=self.count+1
+    if (self.count>self.t0):
+      if (self.count<self.t1):
+        cdx=self.ddx*(self.count-self.t0)
+	self.theLSM.moveWallBy("lowerWall",Vec3(0.0,cdx,0.0))
+	self.theLSM.moveWallBy("upperWall",Vec3(0.0,-1.0*cdx,0.0))
+      else:
+        self.theLSM.moveWallBy("lowerWall",Vec3(0.0,self.dx,0.0))
+	self.theLSM.moveWallBy("upperWall",Vec3(0.0,-1.0*self.dx,0.0))
+    if ((self.count%1000)==0):
+      print self.count
+
+def runSimulation():
+  nt=1000
+  dt_snap=100
+  t0=0
+  t1=500
+  dt=0.04
+  v=0.0005
+  
+#  setVerbosity(True)
+  mySim=LsmMpi(
+    numWorkerProcesses=2,
+    mpiDimList=[1,2,0]
+  )
+  
+  mySim.initNeighbourSearch (
+    particleType = "RotSphere",
+    gridSpacing=2.2,
+    verletDist=0.1
+  )
+  
+  mySim.initNeighbourSearch (
+    particleType="RotSphere",
+    gridSpacing=2.2,
+    verletDist=0.1
+  )
+  
+  mySim.setTimeStepSize(dt)
+  
+  mySim.readGeometry("box30.0.geo")
+  
+  mySim.createWall (
+    name="lowerWall",
+    posn=Vec3(0.0,0.0,0.0),
+    normal=Vec3(0.0,1.0,0.0)
+  )
+  
+  mySim.createWall (
+    name="upperWall",
+    posn=Vec3(0.0,30.0,0.0),
+    normal=Vec3(0.0,-1.0,0.0)
+  )
+  
+  k=2.0
+  kbreak=10.0
+  bip=RotBondPrms (
+    name="bonded",
+    normalK=k*0.5,
+    shearK=k*0.15,
+    torsionK=k*0.04,
+    bendingK=k*0.017,
+    normalBrkForce=kbreak*0.00025,
+    shearBrkForce=kbreak*0.00125,
+    torsionBrkForce=kbreak*0.000125,
+    bendingBrkForce=kbreak*0.000125,
+    tag=0,
+    scaling=True
+  )
+  
+  fip=RotFrictionPrms (
+    name="friction",
+    normalK=1.0,
+    dynamicMu=0.6,
+    staticMu=0.6,
+    shearK=1.0,
+    scaling=True
+  )
+  
+  dip=LinDampingPrms (
+    name="damping1",
+    viscosity=0.01,
+    maxIterations=50
+  )
+  
+  rdip=RotDampingPrms (
+    name="damping2",
+    viscosity=0.01,
+    maxIterations=50
+  )
+  
+  mySim.createInteractionGroup(bip)
+  mySim.createInteractionGroup(dip)
+  mySim.createInteractionGroup(rdip)
+  mySim.createInteractionGroup(fip)
+  
+  mySim.createExclusion("bonded","friction")
+  
+  wp1=NRotElasticWallPrms (
+    name="upperWallInteraction",
+    wallName="upperWall",
+    normalK=1.0
+  )
+  
+  wp2=NRotElasticWallPrms (
+    name="lowerWallInteraction",
+    wallName="lowerWall",
+    normalK=1.0
+  )
+  
+  mySim.createInteractionGroup(wp1)
+  mySim.createInteractionGroup(wp2)
+  
+  nb_prm=InteractionScalarFieldSaverPrms (
+    interactionName="bonded",
+    fieldName="count",
+    fileName="nbons.dat",
+    fileFormat="SUM",
+    beginTimeStep=0,
+    endTimeStep=nt,
+    timeStepIncr=1
+  )
+  
+  mySim.createFieldSaver(nb_prm)
+  
+  
+  
+  pot_file_name="epot.dat"
+  ep_prm=InteractionScalarFieldSaverPrms (
+    interactionName="bonded",
+    fieldName="potential_energy",
+    fileName=pot_file_name,
+    fileFormat="SUM",
+    beginTimeStep=0,
+    endTimeStep=nt,
+    timeStepIncr=1
+  )
+  mySim.createFieldSaver(ep_prm)
+  
+  
+  kin_file_name="ekin.dat"
+  ek_prm=ParticleScalarFieldSaverPrms (
+    fieldName="e_kin",
+    fileName=kin_file_name,
+    fileFormat="SUM",
+    beginTimeStep=0,
+    endTimeStep=nt,
+    timeStepIncr=1
+  )
+  mySim.createFieldSaver(ek_prm)
+  
+  
+  wf_file_name="wf.dat"
+  mySim.createFieldSaver (
+    WallVectorFieldSaverPrms (
+      fileName=wf_file_name,
+      fieldName="Force",
+      wallName=["lowerWall","upperWall"],
+      fileFormat="RAW_SERIES",
+      beginTimeStep=0,
+      endTimeStep=nt,
+      timeStepIncr=1
+    )
+  )
+  
+  wp_file_name="wp.dat"
+  mySim.createFieldSaver (
+    WallVectorFieldSaverPrms (
+      fileName=wp_file_name,
+      fieldName="Position",
+      wallName=["lowerWall","upperWall"],
+      fileFormat="RAW_SERIES",
+      beginTimeStep=0,
+      endTimeStep=nt,
+      timeStepIncr=1
+    )
+  )
+  
+  cp=CheckPointPrms (
+    fileNamePrefix="cpt/cpt",
+    beginTimeStep = 0,
+    endTimeStep = nt,
+    timeStepIncr = dt_snap
+  )
+  
+  mySim.createCheckPointer (cp)
+  
+  lf=Loading(mySim,v*dt,t0,t1)
+  mySim.addPreTimeStepRunnable(lf)
+  
+  mySim.setNumTimeSteps(nt)
+  
+  mySim.run()
+  
+if (__name__=="__main__"):
+  runSimulation()
+  

-- 
Packaging for ESyS-Particle - Open Source software for particle-based numerical modelling



More information about the debian-science-commits mailing list