Skip to content
Snippets Groups Projects
Commit 670d6dc1 authored by Jean-Baptiste Keck's avatar Jean-Baptiste Keck
Browse files

working 3D bubbles

parent ae92bbad
No related branches found
No related tags found
No related merge requests found
...@@ -182,7 +182,7 @@ def compute(args): ...@@ -182,7 +182,7 @@ def compute(args):
#> External force rot(-rho*g) #> External force rot(-rho*g)
Fext = np.zeros(shape=(dim,), dtype=object).view(SymbolicTensor) Fext = np.zeros(shape=(dim,), dtype=object).view(SymbolicTensor)
Fext[dim-1] = -1.0 #-9.8196 Fext[1] = -1.0 #-9.8196
Fext *= rhos Fext *= rhos
lhs = Ws.diff(frame.time) lhs = Ws.diff(frame.time)
rhs = curl(Fext, frame) rhs = curl(Fext, frame)
...@@ -236,7 +236,7 @@ def compute(args): ...@@ -236,7 +236,7 @@ def compute(args):
### Adaptive timestep operator ### Adaptive timestep operator
adapt_dt = AdaptiveTimeStep(dt, equivalent_CFL=True, max_dt=0.01, adapt_dt = AdaptiveTimeStep(dt, equivalent_CFL=True, max_dt=1e-2,
name='merge_dt', pretty_name='dt', ) name='merge_dt', pretty_name='dt', )
dt_cfl = adapt_dt.push_cfl_criteria(cfl=args.cfl, Finf=min_max_U.Finf, dt_cfl = adapt_dt.push_cfl_criteria(cfl=args.cfl, Finf=min_max_U.Finf,
equivalent_CFL=True, equivalent_CFL=True,
...@@ -401,6 +401,6 @@ if __name__=='__main__': ...@@ -401,6 +401,6 @@ if __name__=='__main__':
dump_freq=0, dump_freq=0,
dump_times=(0.0, 0.1, 0.20, 0.30, 0.325, 0.4, 0.45, 0.50), dump_times=(0.0, 0.1, 0.20, 0.30, 0.325, 0.4, 0.45, 0.50),
rho1=1.0, rho2=10.0, mu1=0.00025, mu2=0.00050, rho1=1.0, rho2=10.0, mu1=0.00025, mu2=0.00050,
Bc = ((0.5,0.2,0.5),(0.5,0.5,0.5),), Br = (0.1,0.15,)) Bc = ((0.5,0.1,0.5),(0.5,0.4,0.5),), Br = (0.1,0.15,))
parser.run(compute) parser.run(compute)
...@@ -49,13 +49,15 @@ class DirectionalStretchingDiffusion(DirectionalStretching): ...@@ -49,13 +49,15 @@ class DirectionalStretchingDiffusion(DirectionalStretching):
Base class keywords arguments. Base class keywords arguments.
See hysop.operator.directional.stretching_dir.DirectionalStretching. See hysop.operator.directional.stretching_dir.DirectionalStretching.
""" """
check_instance(viscosity, float) check_instance(viscosity, (float, Field))
self.viscosity = viscosity self.viscosity = viscosity
super(DirectionalStretchingDiffusion, self).__init__(**kwds) super(DirectionalStretchingDiffusion, self).__init__(**kwds)
def _gen_expressions(self, formulation, velocity, vorticity, C, A): def _gen_expressions(self, formulation, velocity, vorticity, C, A):
from hysop.symbolic.field import laplacian from hysop.symbolic.field import laplacian
viscosity = self.viscosity viscosity = self.viscosity
if isinstance(viscosity, Field):
viscosity = viscosity.s(*viscosity.domain.frame.vars)
_exprs = super(DirectionalStretchingDiffusion, self)._gen_expressions(formulation=formulation, _exprs = super(DirectionalStretchingDiffusion, self)._gen_expressions(formulation=formulation,
velocity=velocity, vorticity=vorticity, C=C, A=A) velocity=velocity, vorticity=vorticity, C=C, A=A)
exprs = () exprs = ()
......
...@@ -111,6 +111,7 @@ class DirectionalSymbolic(DirectionalOperatorFrontend): ...@@ -111,6 +111,7 @@ class DirectionalSymbolic(DirectionalOperatorFrontend):
directional_exprs[k] += (v,) directional_exprs[k] += (v,)
else: else:
directional_exprs[k] = (v,) directional_exprs[k] = (v,)
print
self._directional_exprs = directional_exprs self._directional_exprs = directional_exprs
self._no_split = no_split self._no_split = no_split
......
...@@ -40,8 +40,9 @@ def split(F, coords=None): ...@@ -40,8 +40,9 @@ def split(F, coords=None):
res[i] = collect_direction(F, xi) res[i] = collect_direction(F, xi)
residue = (F - sum(res.values())).simplify() residue = (F - sum(res.values())).simplify()
count = sum((r != 0) for r in res.values()) count = sum((r != 0) for r in res.values())
for i in res.keys(): if (count>0):
res[i] += (residue/count) for i in res.keys():
res[i] += (residue/count)
return res return res
def split_assignement(expr, coords=None): def split_assignement(expr, coords=None):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment