Introduction
Introduction Statistics Contact Development Disclaimer Help
tadd pressure perturbation test, do not write Info msg to stderr - sphere - GPU…
git clone git://src.adamsgaard.dk/sphere
Log
Files
Refs
LICENSE
---
commit 105d1be7726f1023ba951d71855a20cdc888339c
parent 5301f85dbe85208d44e2ab8b66ff7671123ee7ea
Author: Anders Damsgaard <[email protected]>
Date: Mon, 10 Nov 2014 10:15:01 +0100
add pressure perturbation test, do not write Info msg to stderr
Diffstat:
M src/sphere.cpp | 2 +-
M tests/cfd_tests_darcy.py | 48 +++++++++++++++++++++++++++--…
2 files changed, 44 insertions(+), 6 deletions(-)
---
diff --git a/src/sphere.cpp b/src/sphere.cpp
t@@ -166,7 +166,7 @@ void DEM::checkValues(void)
// Check that we have a positive number of particles
if (np < 1) {
- cerr << "Info: No particles are being simulated (np = " << np
+ cout << "Info: No particles are being simulated (np = " << np
<< ")" << endl;
}
diff --git a/tests/cfd_tests_darcy.py b/tests/cfd_tests_darcy.py
t@@ -10,6 +10,7 @@ print("### CFD tests - Dirichlet BCs ###")
# Iteration and conservation of mass test
# No gravity, no pressure gradients => no flow
+print("# No forcing")
orig = sphere.sim(np = 0, nd = 3, nw = 0, sid = "cfdtest", fluid = True)
cleanup(orig)
orig.defaultParams()
t@@ -22,7 +23,7 @@ orig.initTemporal(total = 0.2, file_dt = 0.01, dt = 1.0e-7)
orig.time_file_dt = orig.time_dt*0.99
orig.time_total = orig.time_dt*10
#orig.run(dry=True)
-orig.run(verbose=False)
+orig.run(device=2, verbose=False)
#orig.run(verbose=True)
py = sphere.sim(sid = orig.sid, fluid = True)
t@@ -46,14 +47,14 @@ else:
# Add pressure gradient
-# This test passes with BETA=0.0 and tolerance=1.0e-9
+print("# Pressure gradient")
orig.p_f[:,:,-1] = 1.1
#orig.setTolerance(1.0e-8)
#orig.time_dt[0] *= 0.01
orig.cleanup()
#orig.time_file_dt = orig.time_dt*0.99
#orig.time_total = orig.time_dt*1
-orig.run(verbose=False)
+orig.run(device=2, verbose=False)
#orig.run(verbose=True)
py.readlast(verbose = False)
ideal_grad_p_z = numpy.linspace(orig.p_f[0,0,0], orig.p_f[0,0,-1], orig.num[2])
t@@ -129,12 +130,12 @@ for it in range(1,py.status()): # gradient should be smo…
'''
#'''
-# Fast pressure modulation test
+print("# Fast pressure modulation")
orig.time_total[0] = 1.0e-2
orig.time_file_dt[0] = 0.101*orig.time_total[0]
orig.setFluidPressureModulation(A=1.0, f=1.0/orig.time_total[0])
#orig.plotPrescribedFluidPressures()
-orig.run(verbose=False)
+orig.run(device=2, verbose=False)
#py.plotConvergence()
#py.plotFluidDiffAdvPresZ()
#py.writeVTKall()
t@@ -149,4 +150,41 @@ for it in range(1,py.status()+1): # gradient should be sm…
str(it) + '/' + str(py.status()) + '):', tolerance=5.0e-1)
#'''
+print("# Pressure perturbation")
+orig = sphere.sim(np = 0, nd = 3, nw = 0, sid = "cfdtest", fluid = True)
cleanup(orig)
+orig.defaultParams()
+orig.defineWorldBoundaries([1.0,1.0,1.0], dx=0.1)
+#orig.defineWorldBoundaries([0.4,0.3,0.4], dx=0.1)
+orig.initFluid(cfd_solver = 1)
+#orig.initFluid(mu = 8.9e-4)
+orig.initTemporal(total = 0.2, file_dt = 0.01, dt = 1.0e-7)
+#orig.g[2] = -10.0
+orig.time_file_dt = orig.time_dt*0.99
+orig.time_total = orig.time_dt*10
+#orig.run(dry=True)
+orig.p_f[4,2,5] = 2.0
+#orig.run(verbose=False)
+orig.run(device=2, verbose=True)
+py = sphere.sim(sid = orig.sid, fluid = True)
+
+
+#ones = numpy.ones((orig.num))
+#py.readlast(verbose = False)
+#compareNumpyArrays(ones, py.p_f, "Conservation of pressure:")
+
+# Convergence rate (1/3)
+#it = numpy.loadtxt("../output/" + orig.sid + "-conv.log")
+#compare(it[:,1].sum(), 0.0, "Convergence rate (1/3):\t")
+
+# Fluid flow should be very small
+#if ((numpy.abs(py.v_f[:,:,:,:]) < 1.0e-6).all()):
+# print("Flow field:\t\t" + passed())
+#else:
+# print("Flow field:\t\t" + failed())
+# print(numpy.min(py.v_f))
+# print(numpy.mean(py.v_f))
+# print(numpy.max(py.v_f))
+# raise Exception("Failed")
+
+#cleanup(orig)
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.