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) |