From ca609fafc2ce75be4f2038681960f5a2d8b87e60 Mon Sep 17 00:00:00 2001 From: Helen Schottenhamml <helen.schottenhamml@fau.de> Date: Wed, 24 Mar 2021 15:57:35 +0100 Subject: [PATCH] Custom floating point precision for boundary conditions. --- lbmpy/boundaries/boundaryconditions.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lbmpy/boundaries/boundaryconditions.py b/lbmpy/boundaries/boundaryconditions.py index 5d240225..886e9f66 100644 --- a/lbmpy/boundaries/boundaryconditions.py +++ b/lbmpy/boundaries/boundaryconditions.py @@ -125,7 +125,7 @@ class UBB(LbBoundary): name: optional name of the boundary. """ - def __init__(self, velocity, adapt_velocity_to_force=False, dim=None, name=None): + def __init__(self, velocity, adapt_velocity_to_force=False, dim=None, name=None, data_type='double'): super(UBB, self).__init__(name) self._velocity = velocity self._adaptVelocityToForce = adapt_velocity_to_force @@ -134,13 +134,14 @@ class UBB(LbBoundary): elif not callable(self._velocity): dim = len(velocity) self.dim = dim + self.data_type = data_type @property def additional_data(self): """ In case of the UBB boundary additional data is a velocity vector. This vector is added to each cell to realize velocity profiles for the inlet.""" if self.velocity_is_callable: - return [('vel_%d' % (i,), create_type("double")) for i in range(self.dim)] + return [('vel_%d' % (i,), create_type(self.data_type)) for i in range(self.dim)] else: return [] @@ -291,7 +292,9 @@ class ExtrapolationOutflow(LbBoundary): def __init__(self, normal_direction, lb_method, dt=1, dx=1, name=None, streaming_pattern='pull', zeroth_timestep=Timestep.BOTH, - initial_density=None, initial_velocity=None): + initial_density=None, initial_velocity=None, data_type='double'): + + self.data_type = data_type self.lb_method = lb_method self.stencil = lb_method.stencil @@ -359,7 +362,7 @@ class ExtrapolationOutflow(LbBoundary): def additional_data(self): """Used internally only. For the ExtrapolationOutflow information of the previous PDF values is needed. This information is stored in the index vector.""" - data = [('pdf', create_type("double")), ('pdf_nd', create_type("double"))] + data = [('pdf', create_type(self.data_type)), ('pdf_nd', create_type(self.data_type))] return data @property -- GitLab