[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