diff --git a/lbmpy/boundaries/boundaryconditions.py b/lbmpy/boundaries/boundaryconditions.py index 5d2402254b1f26f71c97530b8ca5cb1443921e51..886e9f66a2ca0ec0f38bc07337738f0c32103b73 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