| tadded fluid BC methods, testing stokes_law for dependence on CFD time step - s… | |
| git clone git://src.adamsgaard.dk/sphere | |
| Log | |
| Files | |
| Refs | |
| LICENSE | |
| --- | |
| commit 48692b733e6e121ddf0f6bd984db99ee677ba2cb | |
| parent 3bac1089f971803928f003fba88be3c1b0433c46 | |
| Author: Anders Damsgaard <[email protected]> | |
| Date: Fri, 2 May 2014 09:55:19 +0200 | |
| added fluid BC methods, testing stokes_law for dependence on CFD time step | |
| Diffstat: | |
| M doc/html/genindex.html | 24 ++++++++++++++++++++++-- | |
| M doc/html/objects.inv | 0 | |
| M doc/html/python_api.html | 69 ++++++++++++++++++++++++++++-… | |
| M doc/html/searchindex.js | 4 ++-- | |
| M doc/pdf/sphere.pdf | 0 | |
| M python/sphere.py | 40 +++++++++++++++++++++++++++++… | |
| M tests/stokes_law.py | 7 ++++--- | |
| 7 files changed, 132 insertions(+), 12 deletions(-) | |
| --- | |
| diff --git a/doc/html/genindex.html b/doc/html/genindex.html | |
| t@@ -378,10 +378,30 @@ | |
| </dt> | |
| + <dt><a href="python_api.html#sphere.sim.setDEMstepsPerCFDstep">setDEMstepsPe… | |
| + </dt> | |
| + | |
| + | |
| + <dt><a href="python_api.html#sphere.sim.setFluidBottomFixedPressure">setFlui… | |
| + </dt> | |
| + | |
| + | |
| + <dt><a href="python_api.html#sphere.sim.setFluidBottomNoFlow">setFluidBottom… | |
| + </dt> | |
| + | |
| + | |
| <dt><a href="python_api.html#sphere.sim.setFluidPressureModulation">setFluid… | |
| </dt> | |
| + <dt><a href="python_api.html#sphere.sim.setFluidTopFixedPressure">setFluidTo… | |
| + </dt> | |
| + | |
| + | |
| + <dt><a href="python_api.html#sphere.sim.setFluidTopNoFlow">setFluidTopNoFlow… | |
| + </dt> | |
| + | |
| + | |
| <dt><a href="python_api.html#sphere.sim.setGamma">setGamma() (sphere.sim met… | |
| </dt> | |
| t@@ -389,6 +409,8 @@ | |
| <dt><a href="python_api.html#sphere.sim.setMaxIterations">setMaxIterations()… | |
| </dt> | |
| + </dl></td> | |
| + <td style="width: 33%" valign="top"><dl> | |
| <dt><a href="python_api.html#sphere.sim.setTheta">setTheta() (sphere.sim met… | |
| </dt> | |
| t@@ -401,8 +423,6 @@ | |
| <dt><a href="python_api.html#sphere.sim.shear">shear() (sphere.sim method)</… | |
| </dt> | |
| - </dl></td> | |
| - <td style="width: 33%" valign="top"><dl> | |
| <dt><a href="python_api.html#sphere.sim.sheardisp">sheardisp() (sphere.sim m… | |
| </dt> | |
| diff --git a/doc/html/objects.inv b/doc/html/objects.inv | |
| Binary files differ. | |
| diff --git a/doc/html/python_api.html b/doc/html/python_api.html | |
| t@@ -1260,11 +1260,49 @@ best results precision and performance-wise are obtain… | |
| of 0 and a low tolerance criteria value.</p> | |
| <p>The default and recommended value is 0.0.</p> | |
| <p>Other solver parameter setting functions: <a class="reference internal" hre… | |
| -<a class="reference internal" href="#sphere.sim.setTheta" title="sphere.sim.se… | |
| +<a class="reference internal" href="#sphere.sim.setTheta" title="sphere.sim.se… | |
| +<a class="reference internal" href="#sphere.sim.setDEMstepsPerCFDstep" title="… | |
| <a class="reference internal" href="#sphere.sim.setMaxIterations" title="spher… | |
| </dd></dl> | |
| <dl class="method"> | |
| +<dt id="sphere.sim.setDEMstepsPerCFDstep"> | |
| +<tt class="descname">setDEMstepsPerCFDstep</tt><big>(</big><em>ndem</em><big>)… | |
| +<dd><p>A fluid solver parameter, the value of the maxiter parameter denotes the | |
| +number of DEM time steps to be performed per CFD time step.</p> | |
| +<p>The default value is 1.</p> | |
| +<table class="docutils field-list" frame="void" rules="none"> | |
| +<col class="field-name" /> | |
| +<col class="field-body" /> | |
| +<tbody valign="top"> | |
| +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="… | |
| +</tr> | |
| +</tbody> | |
| +</table> | |
| +<p>Other solver parameter setting functions: <a class="reference internal" hre… | |
| +<a class="reference internal" href="#sphere.sim.setTheta" title="sphere.sim.se… | |
| +<a class="reference internal" href="#sphere.sim.setMaxIterations" title="spher… | |
| +</dd></dl> | |
| + | |
| +<dl class="method"> | |
| +<dt id="sphere.sim.setFluidBottomFixedPressure"> | |
| +<tt class="descname">setFluidBottomFixedPressure</tt><big>(</big><big>)</big><… | |
| +<dd><p>Set the lower boundary of the fluid domain to follow the fixed pressure | |
| +value (Dirichlet) boundary condition.</p> | |
| +<p>This is the default behavior for the boundary. See also | |
| +<a class="reference internal" href="#sphere.sim.setFluidBottomNoFlow" title="s… | |
| +</dd></dl> | |
| + | |
| +<dl class="method"> | |
| +<dt id="sphere.sim.setFluidBottomNoFlow"> | |
| +<tt class="descname">setFluidBottomNoFlow</tt><big>(</big><big>)</big><a class… | |
| +<dd><p>Set the lower boundary of the fluid domain to follow the no-flow | |
| +(Neumann) boundary condition.</p> | |
| +<p>The default behavior for the boundary is fixed value (Dirichlet), see | |
| +<a class="reference internal" href="#sphere.sim.setFluidBottomFixedPressure" t… | |
| +</dd></dl> | |
| + | |
| +<dl class="method"> | |
| <dt id="sphere.sim.setFluidPressureModulation"> | |
| <tt class="descname">setFluidPressureModulation</tt><big>(</big><em>A</em>, <e… | |
| <dd><p>Set the parameters for the sine wave modulating the fluid pressures | |
| t@@ -1286,6 +1324,24 @@ at the top boundary. Note that a cos-wave is obtained w… | |
| </dd></dl> | |
| <dl class="method"> | |
| +<dt id="sphere.sim.setFluidTopFixedPressure"> | |
| +<tt class="descname">setFluidTopFixedPressure</tt><big>(</big><big>)</big><a c… | |
| +<dd><p>Set the upper boundary of the fluid domain to follow the fixed pressure | |
| +value (Dirichlet) boundary condition.</p> | |
| +<p>This is the default behavior for the boundary. See also | |
| +<a class="reference internal" href="#sphere.sim.setFluidTopNoFlow" title="sphe… | |
| +</dd></dl> | |
| + | |
| +<dl class="method"> | |
| +<dt id="sphere.sim.setFluidTopNoFlow"> | |
| +<tt class="descname">setFluidTopNoFlow</tt><big>(</big><big>)</big><a class="h… | |
| +<dd><p>Set the upper boundary of the fluid domain to follow the no-flow | |
| +(Neumann) boundary condition.</p> | |
| +<p>The default behavior for the boundary is fixed value (Dirichlet), see | |
| +<a class="reference internal" href="#sphere.sim.setFluidTopFixedPressure" titl… | |
| +</dd></dl> | |
| + | |
| +<dl class="method"> | |
| <dt id="sphere.sim.setGamma"> | |
| <tt class="descname">setGamma</tt><big>(</big><em>gamma</em><big>)</big><a cla… | |
| <dd><p>Gamma is a fluid solver parameter, used for smoothing the pressure | |
| t@@ -1303,7 +1359,8 @@ more averaging is introduced. A value of 0.0 disables al… | |
| </tbody> | |
| </table> | |
| <p>Other solver parameter setting functions: <a class="reference internal" hre… | |
| -<a class="reference internal" href="#sphere.sim.setBeta" title="sphere.sim.set… | |
| +<a class="reference internal" href="#sphere.sim.setBeta" title="sphere.sim.set… | |
| +<a class="reference internal" href="#sphere.sim.setDEMstepsPerCFDstep" title="… | |
| </dd></dl> | |
| <dl class="method"> | |
| t@@ -1325,7 +1382,8 @@ solver</td> | |
| </tbody> | |
| </table> | |
| <p>Other solver parameter setting functions: <a class="reference internal" hre… | |
| -<a class="reference internal" href="#sphere.sim.setTheta" title="sphere.sim.se… | |
| +<a class="reference internal" href="#sphere.sim.setTheta" title="sphere.sim.se… | |
| +and <a class="reference internal" href="#sphere.sim.setTolerance" title="spher… | |
| </dd></dl> | |
| <dl class="method"> | |
| t@@ -1347,7 +1405,8 @@ instabilities may be avoided with lower values.</p> | |
| </tbody> | |
| </table> | |
| <p>Other solver parameter setting functions: <a class="reference internal" hre… | |
| -<a class="reference internal" href="#sphere.sim.setBeta" title="sphere.sim.set… | |
| +<a class="reference internal" href="#sphere.sim.setBeta" title="sphere.sim.set… | |
| +<a class="reference internal" href="#sphere.sim.setDEMstepsPerCFDstep" title="… | |
| </dd></dl> | |
| <dl class="method"> | |
| t@@ -1367,7 +1426,7 @@ residual</td> | |
| </tbody> | |
| </table> | |
| <p>Other solver parameter setting functions: <a class="reference internal" hre… | |
| -<a class="reference internal" href="#sphere.sim.setTheta" title="sphere.sim.se… | |
| +<a class="reference internal" href="#sphere.sim.setTheta" title="sphere.sim.se… | |
| <a class="reference internal" href="#sphere.sim.setMaxIterations" title="spher… | |
| </dd></dl> | |
| diff --git a/doc/html/searchindex.js b/doc/html/searchindex.js | |
| t@@ -1 +1 @@ | |
| -Search.setIndex({objects:{"":{sphere:[5,0,1,""]},sphere:{status:[5,2,1,""],con… | |
| -\ No newline at end of file | |
| +Search.setIndex({objects:{"":{sphere:[5,0,1,""]},sphere:{status:[5,2,1,""],con… | |
| +\ No newline at end of file | |
| diff --git a/doc/pdf/sphere.pdf b/doc/pdf/sphere.pdf | |
| Binary files differ. | |
| diff --git a/python/sphere.py b/python/sphere.py | |
| t@@ -2374,6 +2374,46 @@ class sim: | |
| self.maxiter = numpy.array(1e4) | |
| self.ndem = numpy.array(1) | |
| + def setFluidBottomNoFlow(self): | |
| + ''' | |
| + Set the lower boundary of the fluid domain to follow the no-flow | |
| + (Neumann) boundary condition. | |
| + | |
| + The default behavior for the boundary is fixed value (Dirichlet), see | |
| + :func:`setFluidBottomFixedPressure()`. | |
| + ''' | |
| + self.bc_bot[0] = 1 | |
| + | |
| + def setFluidBottomFixedPressure(self): | |
| + ''' | |
| + Set the lower boundary of the fluid domain to follow the fixed pressure | |
| + value (Dirichlet) boundary condition. | |
| + | |
| + This is the default behavior for the boundary. See also | |
| + :func:`setFluidBottomNoFlow()` | |
| + ''' | |
| + self.bc_bot[0] = 0 | |
| + | |
| + def setFluidTopNoFlow(self): | |
| + ''' | |
| + Set the upper boundary of the fluid domain to follow the no-flow | |
| + (Neumann) boundary condition. | |
| + | |
| + The default behavior for the boundary is fixed value (Dirichlet), see | |
| + :func:`setFluidTopFixedPressure()`. | |
| + ''' | |
| + self.bc_top[0] = 1 | |
| + | |
| + def setFluidTopFixedPressure(self): | |
| + ''' | |
| + Set the upper boundary of the fluid domain to follow the fixed pressure | |
| + value (Dirichlet) boundary condition. | |
| + | |
| + This is the default behavior for the boundary. See also | |
| + :func:`setFluidTopNoFlow()` | |
| + ''' | |
| + self.bc_top[0] = 0 | |
| + | |
| def defaultParams(self, | |
| mu_s = 0.4, | |
| mu_d = 0.4, | |
| diff --git a/tests/stokes_law.py b/tests/stokes_law.py | |
| t@@ -8,7 +8,7 @@ import matplotlib.pyplot as plt | |
| print("### Stokes test - single sphere sedimentation ###") | |
| ## Stokes drag | |
| -orig = sphere.sim(sid = "stokes_law", fluid = True) | |
| +orig = sphere.sim(sid = "stokes_law_DEMCFD1", fluid = True) | |
| cleanup(orig) | |
| orig.defaultParams() | |
| orig.addParticle([0.5,0.5,1.46], 0.05) | |
| t@@ -18,7 +18,8 @@ orig.defineWorldBoundaries([1.0,1.0,2.0]) | |
| orig.initFluid(mu = 8.9e-4) | |
| #orig.initTemporal(total = 1.0, file_dt = 0.01) | |
| #orig.initTemporal(total = 1.0e-1, file_dt = 5.0e-3) | |
| -orig.initTemporal(total = 5.0, file_dt = 1.0e-2) | |
| +#orig.initTemporal(total = 5.0, file_dt = 1.0e-2) | |
| +orig.initTemporal(total = 1.0, file_dt = 1.0e-2) | |
| #orig.time_file_dt = orig.time_dt | |
| #orig.time_total = orig.time_dt*200 | |
| #orig.time_file_dt = orig.time_dt*10 | |
| t@@ -30,7 +31,7 @@ orig.vel[0,2] = -0.1 | |
| #orig.vel[0,2] = -0.001 | |
| #orig.setBeta(0.5) | |
| orig.setTolerance(1.0e-4) | |
| -orig.setDEMstepsPerCFDstep(100) | |
| +#orig.setDEMstepsPerCFDstep(100) | |
| orig.run(dry=True) | |
| orig.run(verbose=True) | |
| py = sphere.sim(sid = orig.sid, fluid = True) |