diff --git a/.isort.cfg b/.isort.cfg new file mode 100644 index 0000000000000000000000000000000000000000..cbdece3111e9f53cddffe209dd5e1ac4930ad9c5 --- /dev/null +++ b/.isort.cfg @@ -0,0 +1,4 @@ +[settings] +line_length=100 +balanced_wrapping=True +multi_line_output=4 diff --git a/lbmpy/boundaries/__init__.py b/lbmpy/boundaries/__init__.py index 1a3bc2a24b3f579a1d2e5dad4e65b6ce3e6e990b..b013519e38da30878e118ffaff6e202881028f8c 100644 --- a/lbmpy/boundaries/__init__.py +++ b/lbmpy/boundaries/__init__.py @@ -1,4 +1,5 @@ -from lbmpy.boundaries.boundaryconditions import NoSlip, UBB, FixedDensity, NeumannByCopy, StreamInConstant +from lbmpy.boundaries.boundaryconditions import ( + UBB, FixedDensity, NeumannByCopy, NoSlip, StreamInConstant) from lbmpy.boundaries.boundaryhandling import LatticeBoltzmannBoundaryHandling __all__ = ['NoSlip', 'UBB', 'FixedDensity', 'NeumannByCopy', 'LatticeBoltzmannBoundaryHandling', 'StreamInConstant'] diff --git a/lbmpy/boundaries/boundaryconditions.py b/lbmpy/boundaries/boundaryconditions.py index 3ea7f12796cf92f42a3f8c4c2d502270d33326ee..ac455a5f92f7798e6d9915e1ec25c6cb7a745505 100644 --- a/lbmpy/boundaries/boundaryconditions.py +++ b/lbmpy/boundaries/boundaryconditions.py @@ -1,10 +1,11 @@ import sympy as sp -from pystencils import Field, Assignment + +from lbmpy.boundaries.boundaryhandling import BoundaryOffsetInfo, LbmWeightInfo +from lbmpy.simplificationfactory import create_simplification_strategy +from pystencils import Assignment, Field from pystencils.astnodes import SympyAssignment -from pystencils.sympyextensions import get_symmetric_part from pystencils.data_types import create_type -from lbmpy.simplificationfactory import create_simplification_strategy -from lbmpy.boundaries.boundaryhandling import BoundaryOffsetInfo, LbmWeightInfo +from pystencils.sympyextensions import get_symmetric_part class Boundary: diff --git a/lbmpy/boundaries/boundaryhandling.py b/lbmpy/boundaries/boundaryhandling.py index 172f8fac0baa65fb50bd6771634c15c1b173b05c..575a046d2466c107b439842bfdd65ef09cd0157c 100644 --- a/lbmpy/boundaries/boundaryhandling.py +++ b/lbmpy/boundaries/boundaryhandling.py @@ -1,6 +1,7 @@ import numpy as np import sympy as sp -from pystencils import TypedSymbol, create_indexed_kernel, Assignment + +from pystencils import Assignment, TypedSymbol, create_indexed_kernel from pystencils.backends.cbackend import CustomCodeNode from pystencils.boundaries import BoundaryHandling from pystencils.boundaries.boundaryhandling import BoundaryOffsetInfo diff --git a/lbmpy/chapman_enskog/__init__.py b/lbmpy/chapman_enskog/__init__.py index bc5abb7a95cf7c77138ae81febfec77fd45224dd..a110d2f24e56d615d5174944b883f3c6618a7ab7 100644 --- a/lbmpy/chapman_enskog/__init__.py +++ b/lbmpy/chapman_enskog/__init__.py @@ -1,5 +1,5 @@ -from lbmpy.chapman_enskog.chapman_enskog import ChapmanEnskogAnalysis, remove_higher_order_u, \ - take_moments, chapman_enskog_ansatz, CeMoment +from lbmpy.chapman_enskog.chapman_enskog import ( + CeMoment, ChapmanEnskogAnalysis, chapman_enskog_ansatz, remove_higher_order_u, take_moments) from lbmpy.chapman_enskog.chapman_enskog_steady_state import SteadyStateChapmanEnskogAnalysis __all__ = ['ChapmanEnskogAnalysis', 'remove_higher_order_u', 'take_moments', 'chapman_enskog_ansatz', 'CeMoment', diff --git a/lbmpy/chapman_enskog/chapman_enskog.py b/lbmpy/chapman_enskog/chapman_enskog.py index 9ca4509f881977eb3ba13960cee0a50357e37360..020f4a7a5489fa95aec950c8b8ff11347a3f8208 100644 --- a/lbmpy/chapman_enskog/chapman_enskog.py +++ b/lbmpy/chapman_enskog/chapman_enskog.py @@ -1,13 +1,18 @@ -import sympy as sp from collections import namedtuple + +import sympy as sp from sympy.core.cache import cacheit + +from lbmpy.chapman_enskog.derivative import ( + chapman_enskog_derivative_expansion, chapman_enskog_derivative_recombination) +from lbmpy.moments import ( + discrete_moment, get_moment_indices, moment_matrix, non_aliased_moment, + polynomial_to_exponent_representation) from pystencils.cache import disk_cache -from pystencils.fd import expand_diff_full, Diff, DiffOperator, expand_diff_linear, \ - expand_diff_products, normalize_diff_order +from pystencils.fd import ( + Diff, DiffOperator, expand_diff_full, expand_diff_linear, expand_diff_products, + normalize_diff_order) from pystencils.sympyextensions import normalize_product, symmetric_product -from lbmpy.moments import discrete_moment, moment_matrix, polynomial_to_exponent_representation, get_moment_indices, \ - non_aliased_moment -from lbmpy.chapman_enskog.derivative import chapman_enskog_derivative_recombination, chapman_enskog_derivative_expansion class ChapmanEnskogAnalysis: diff --git a/lbmpy/chapman_enskog/chapman_enskog_higher_order.py b/lbmpy/chapman_enskog/chapman_enskog_higher_order.py index ed722b094ede7ac2d7e9591e0332864b93d4ce61..e44b3732f59763b3f868bae46b034f595d6ac3d3 100644 --- a/lbmpy/chapman_enskog/chapman_enskog_higher_order.py +++ b/lbmpy/chapman_enskog/chapman_enskog_higher_order.py @@ -1,9 +1,10 @@ +from collections import OrderedDict, namedtuple + import sympy as sp + +from lbmpy.chapman_enskog.chapman_enskog import CeMoment, Diff, expanded_symbol, take_moments +from lbmpy.moments import moments_of_order, moments_up_to_order from pystencils.fd import expand_diff_full -from lbmpy.chapman_enskog.chapman_enskog import CeMoment, Diff, take_moments -from lbmpy.chapman_enskog.chapman_enskog import expanded_symbol -from lbmpy.moments import moments_up_to_order, moments_of_order -from collections import OrderedDict, namedtuple def poly_moments(order, dim): diff --git a/lbmpy/chapman_enskog/chapman_enskog_steady_state.py b/lbmpy/chapman_enskog/chapman_enskog_steady_state.py index c61a4323638962d4bb130e8ee3a8d1b9f0566706..fcbc8aeb3363e443ae23b12ef19150c90329b61e 100644 --- a/lbmpy/chapman_enskog/chapman_enskog_steady_state.py +++ b/lbmpy/chapman_enskog/chapman_enskog_steady_state.py @@ -1,10 +1,13 @@ -import sympy as sp import functools -from pystencils.fd import Diff, DiffOperator, expand_diff_linear, normalize_diff_order, \ - collect_diffs -from pystencils.sympyextensions import normalize_product, multidimensional_sum, kronecker_delta -from lbmpy.chapman_enskog.chapman_enskog import LbMethodEqMoments, CeMoment, take_moments, insert_moments -from lbmpy.chapman_enskog.chapman_enskog import expanded_symbol, chapman_enskog_ansatz, remove_higher_order_u + +import sympy as sp + +from lbmpy.chapman_enskog.chapman_enskog import ( + CeMoment, LbMethodEqMoments, chapman_enskog_ansatz, expanded_symbol, insert_moments, + remove_higher_order_u, take_moments) +from pystencils.fd import ( + Diff, DiffOperator, collect_diffs, expand_diff_linear, normalize_diff_order) +from pystencils.sympyextensions import kronecker_delta, multidimensional_sum, normalize_product class SteadyStateChapmanEnskogAnalysis: diff --git a/lbmpy/chapman_enskog/derivative.py b/lbmpy/chapman_enskog/derivative.py index 192bbd06702126ddbe7e4627315002dbe0fd2b95..bb1e0dc55709e922a944564784933703c5c902d4 100644 --- a/lbmpy/chapman_enskog/derivative.py +++ b/lbmpy/chapman_enskog/derivative.py @@ -1,4 +1,5 @@ import sympy as sp + from pystencils.fd import Diff diff --git a/lbmpy/creationfunctions.py b/lbmpy/creationfunctions.py index e7ef4e9c8b64290367f1bbed1a401c316378c188..a49ec04f0e04805a776264bb653a41b12b7c8df2 100644 --- a/lbmpy/creationfunctions.py +++ b/lbmpy/creationfunctions.py @@ -163,31 +163,32 @@ For example, to modify the AST one can run:: func = create_lb_function(ast=ast, ...) """ -import sympy as sp from copy import copy +import sympy as sp + +import lbmpy.forcemodels as forcemodels +from lbmpy.fieldaccess import ( + AAEvenTimeStepAccessor, AAOddTimeStepAccessor, CollideOnlyInplaceAccessor, + EsoTwistEvenTimeStepAccessor, EsoTwistOddTimeStepAccessor, PdfFieldAccessor, + PeriodicTwoFieldsAccessor, StreamPullTwoFieldsAccessor, StreamPushTwoFieldsAccessor) +from lbmpy.methods import ( + create_mrt3, create_mrt_orthogonal, create_mrt_raw, create_srt, create_trt, create_trt_kbc) from lbmpy.methods.creationfunctions import create_generic_mrt from lbmpy.methods.cumulantbased import CumulantBasedLbMethod -from pystencils.cache import disk_cache_no_fallback -from pystencils.data_types import collate_types -from pystencils import AssignmentCollection -from pystencils.field import get_layout_of_array, Field -from pystencils import create_kernel, Assignment -from lbmpy.turbulence_models import add_smagorinsky_model -from lbmpy.methods import create_srt, create_trt, create_mrt_orthogonal, create_trt_kbc, \ - create_mrt_raw, create_mrt3 -from lbmpy.methods.entropic import add_iterative_entropy_condition, add_entropy_condition +from lbmpy.methods.entropic import add_entropy_condition, add_iterative_entropy_condition from lbmpy.methods.entropic_eq_srt import create_srt_entropic from lbmpy.relaxationrates import relaxation_rate_from_magic_number +from lbmpy.simplificationfactory import create_simplification_strategy from lbmpy.stencils import get_stencil +from lbmpy.turbulence_models import add_smagorinsky_model +from lbmpy.updatekernels import create_lbm_kernel, create_stream_pull_with_output_kernel +from pystencils import Assignment, AssignmentCollection, create_kernel +from pystencils.cache import disk_cache_no_fallback +from pystencils.data_types import collate_types +from pystencils.field import Field, get_layout_of_array from pystencils.simp import add_subexpressions_for_field_reads from pystencils.stencil import have_same_entries -import lbmpy.forcemodels as forcemodels -from lbmpy.simplificationfactory import create_simplification_strategy -from lbmpy.fieldaccess import StreamPullTwoFieldsAccessor, PeriodicTwoFieldsAccessor, CollideOnlyInplaceAccessor, \ - EsoTwistEvenTimeStepAccessor, EsoTwistOddTimeStepAccessor, AAEvenTimeStepAccessor, AAOddTimeStepAccessor, \ - StreamPushTwoFieldsAccessor, PdfFieldAccessor -from lbmpy.updatekernels import create_lbm_kernel, create_stream_pull_with_output_kernel def create_lb_function(ast=None, optimization={}, **kwargs): diff --git a/lbmpy/cumulants.py b/lbmpy/cumulants.py index ef241e816ba0cbd7f2ea2699172f05beb607e0b8..c7629adc380d9ea3d044347482d06a99e14aaaf3 100644 --- a/lbmpy/cumulants.py +++ b/lbmpy/cumulants.py @@ -8,8 +8,7 @@ import sympy as sp from lbmpy.continuous_distribution_measures import multi_differentiation from lbmpy.moments import moments_up_to_component_order from pystencils.cache import memorycache -from pystencils.sympyextensions import fast_subs -from pystencils.sympyextensions import scalar_product +from pystencils.sympyextensions import fast_subs, scalar_product def __get_indexed_symbols(passed_symbols, prefix, indices): diff --git a/lbmpy/fieldaccess.py b/lbmpy/fieldaccess.py index 1265dc8e09b802766ca9dfbab8e1e5af032f032a..a82384968ec3a7802a7db0f607598211c8b736e6 100644 --- a/lbmpy/fieldaccess.py +++ b/lbmpy/fieldaccess.py @@ -1,8 +1,11 @@ -import sympy as sp import abc -from pystencils.stencil import inverse_direction -from pystencils import Field +import sympy as sp + +from pystencils import Field +# ------------------------------------------------ Interface ----------------------------------------------------------- +from pystencils.astnodes import LoopOverCoordinate +from pystencils.stencil import inverse_direction __all__ = ['PdfFieldAccessor', 'CollideOnlyInplaceAccessor', 'StreamPullTwoFieldsAccessor', 'AAEvenTimeStepAccessor', 'AAOddTimeStepAccessor', @@ -10,10 +13,6 @@ __all__ = ['PdfFieldAccessor', 'CollideOnlyInplaceAccessor', 'StreamPullTwoField 'visualize_pdf_field_accessor', 'visualize_field_mapping'] -# ------------------------------------------------ Interface ----------------------------------------------------------- -from pystencils.astnodes import LoopOverCoordinate - - class PdfFieldAccessor: """ Defines how data is read and written in an LBM time step. @@ -24,6 +23,7 @@ class PdfFieldAccessor: - esoteric twist single field update - """ + @abc.abstractmethod def read(self, field, stencil): """Returns sequence of field accesses for all stencil values where pdfs are read from""" diff --git a/lbmpy/forcemodels.py b/lbmpy/forcemodels.py index 1fe5438868a9bcb45a99389fb2e036da8b4cd122..7b116e462507e5372e02675b414747f2642cedbb 100644 --- a/lbmpy/forcemodels.py +++ b/lbmpy/forcemodels.py @@ -87,6 +87,7 @@ second moment nonzero :class:`Luo` :class:`Guo` """ import sympy as sp + from lbmpy.relaxationrates import get_shear_relaxation_rate diff --git a/lbmpy/geometry.py b/lbmpy/geometry.py index 1012d22ccbe81c2c4f6a403ed04bf627b35b7e3d..0cd60217dc46c9920585f494186488ea2427dad1 100644 --- a/lbmpy/geometry.py +++ b/lbmpy/geometry.py @@ -1,7 +1,8 @@ import numpy as np -from lbmpy.boundaries import NoSlip, UBB -from pystencils.slicing import normalize_slice, shift_slice, slice_intersection, slice_from_direction +from lbmpy.boundaries import UBB, NoSlip +from pystencils.slicing import ( + normalize_slice, shift_slice, slice_from_direction, slice_intersection) def add_box_boundary(boundary_handling, boundary=NoSlip(), replace=True): diff --git a/lbmpy/innerloopsplit.py b/lbmpy/innerloopsplit.py index 43276a0aeb96e7627305d3e3f8a54bde28258eaf..0cecb4de3bff24d1e97a973ec4426a1fd8ad7a0d 100644 --- a/lbmpy/innerloopsplit.py +++ b/lbmpy/innerloopsplit.py @@ -1,7 +1,9 @@ -import sympy as sp from collections import defaultdict -from pystencils import Field + +import sympy as sp + from lbmpy.methods.abstractlbmethod import LbmCollisionRule +from pystencils import Field def create_lbm_split_groups(cr: LbmCollisionRule, opposing_directions=True): diff --git a/lbmpy/lbstep.py b/lbmpy/lbstep.py index fbb50668e81a8c8afb9c95fa45891d663438ed7b..b21a9afeb307bf57d40a32ea35e56317c474c2b9 100644 --- a/lbmpy/lbstep.py +++ b/lbmpy/lbstep.py @@ -1,13 +1,16 @@ from types import MappingProxyType + import numpy as np + from lbmpy.boundaries.boundaryhandling import LatticeBoltzmannBoundaryHandling -from lbmpy.creationfunctions import switch_to_symbolic_relaxation_rates_for_omega_adapting_methods, \ - create_lb_function, update_with_default_parameters -from lbmpy.macroscopic_value_kernels import create_advanced_velocity_setter_collision_rule, \ - pdf_initialization_assignments +from lbmpy.creationfunctions import ( + create_lb_function, switch_to_symbolic_relaxation_rates_for_omega_adapting_methods, + update_with_default_parameters) +from lbmpy.macroscopic_value_kernels import ( + create_advanced_velocity_setter_collision_rule, pdf_initialization_assignments) from lbmpy.simplificationfactory import create_simplification_strategy from lbmpy.stencils import get_stencil -from pystencils import create_kernel, make_slice, create_data_handling +from pystencils import create_data_handling, create_kernel, make_slice from pystencils.slicing import SlicedGetter from pystencils.timeloop import TimeLoop diff --git a/lbmpy/macroscopic_value_kernels.py b/lbmpy/macroscopic_value_kernels.py index 85c31fc7eb4716dab617a1070090d4598c89ec59..fd4ac3d2708af24d65a1fe7b41cea3830c85f714 100644 --- a/lbmpy/macroscopic_value_kernels.py +++ b/lbmpy/macroscopic_value_kernels.py @@ -1,7 +1,8 @@ import functools from copy import deepcopy -from pystencils.field import Field, get_layout_of_array + from lbmpy.simplificationfactory import create_simplification_strategy +from pystencils.field import Field, get_layout_of_array def pdf_initialization_assignments(lb_method, density, velocity, pdfs): diff --git a/lbmpy/max_domain_size_info.py b/lbmpy/max_domain_size_info.py index e2db3f9b579e0d65354057474e35a039c1bd32aa..c8d7458cf6438bda005a5d63ba291db5c9716886 100644 --- a/lbmpy/max_domain_size_info.py +++ b/lbmpy/max_domain_size_info.py @@ -23,9 +23,10 @@ Examples: """ -import numpy as np import warnings +import numpy as np + # Optional packages cpuinfo, pycuda and psutil for hardware queries try: from cpuinfo import get_cpu_info diff --git a/lbmpy/methods/__init__.py b/lbmpy/methods/__init__.py index 3e068b6f0eef5c41de27d172f4cb3cc3c5ee1135..2ed90edf50bd982de70d65a151768a3714a94dc2 100644 --- a/lbmpy/methods/__init__.py +++ b/lbmpy/methods/__init__.py @@ -1,9 +1,11 @@ -from lbmpy.methods.momentbased import RelaxationInfo, AbstractLbMethod, AbstractConservedQuantityComputation, \ - MomentBasedLbMethod +from lbmpy.methods.creationfunctions import ( + create_mrt3, create_mrt_orthogonal, create_mrt_raw, create_srt, create_trt, create_trt_kbc, + create_trt_with_magic_number, create_with_continuous_maxwellian_eq_moments, + create_with_discrete_maxwellian_eq_moments) +from lbmpy.methods.momentbased import ( + AbstractConservedQuantityComputation, AbstractLbMethod, MomentBasedLbMethod, RelaxationInfo) + from .conservedquantitycomputation import DensityVelocityComputation -from lbmpy.methods.creationfunctions import create_srt, create_trt, create_trt_with_magic_number, create_trt_kbc, \ - create_mrt_orthogonal, create_mrt_raw, create_mrt3, \ - create_with_continuous_maxwellian_eq_moments, create_with_discrete_maxwellian_eq_moments __all__ = ['RelaxationInfo', 'AbstractLbMethod', 'AbstractConservedQuantityComputation', 'DensityVelocityComputation', 'MomentBasedLbMethod', diff --git a/lbmpy/methods/abstractlbmethod.py b/lbmpy/methods/abstractlbmethod.py index c97d695b2e4081f242a1f553e991ed5cd8f634fd..8bdd0606bb5e42126217a9f7f6946229b54945f6 100644 --- a/lbmpy/methods/abstractlbmethod.py +++ b/lbmpy/methods/abstractlbmethod.py @@ -1,8 +1,9 @@ import abc -import sympy as sp from collections import namedtuple -from pystencils import AssignmentCollection +import sympy as sp + +from pystencils import AssignmentCollection RelaxationInfo = namedtuple('RelaxationInfo', ['equilibrium_value', 'relaxation_rate']) diff --git a/lbmpy/methods/conservedquantitycomputation.py b/lbmpy/methods/conservedquantitycomputation.py index 9f5fb0b47a1518cf242d56c2ed35e6196abd22b9..180a2f6b170204322ec2984887d0485e99db9a97 100644 --- a/lbmpy/methods/conservedquantitycomputation.py +++ b/lbmpy/methods/conservedquantitycomputation.py @@ -1,7 +1,9 @@ import abc -import sympy as sp from collections import OrderedDict -from pystencils import Field, Assignment, AssignmentCollection + +import sympy as sp + +from pystencils import Assignment, AssignmentCollection, Field class AbstractConservedQuantityComputation(abc.ABC): diff --git a/lbmpy/methods/creationfunctions.py b/lbmpy/methods/creationfunctions.py index e910fc413b5b37e4dbe99c3368055b60987ae6d5..41c8a919380643bf244c3ece3bbb01794591dbd0 100644 --- a/lbmpy/methods/creationfunctions.py +++ b/lbmpy/methods/creationfunctions.py @@ -1,24 +1,28 @@ +import itertools +import operator +from collections import OrderedDict +from functools import reduce from warnings import warn import sympy as sp -from collections import OrderedDict -from functools import reduce -import operator -import itertools + +from lbmpy.maxwellian_equilibrium import ( + compressible_to_incompressible_moment_value, get_cumulants_of_continuous_maxwellian_equilibrium, + get_cumulants_of_discrete_maxwellian_equilibrium, + get_moments_of_continuous_maxwellian_equilibrium, + get_moments_of_discrete_maxwellian_equilibrium) +from lbmpy.methods.abstractlbmethod import RelaxationInfo +from lbmpy.methods.conservedquantitycomputation import DensityVelocityComputation from lbmpy.methods.cumulantbased import CumulantBasedLbMethod from lbmpy.methods.momentbased import MomentBasedLbMethod +from lbmpy.moments import ( + MOMENT_SYMBOLS, discrete_moment, exponents_to_polynomial_representations, + get_default_moment_set_for_stencil, get_order, gram_schmidt, is_even, moments_of_order, + moments_up_to_component_order, sort_moments_into_groups_of_same_order) +from lbmpy.relaxationrates import default_relaxation_rate_names, relaxation_rate_from_magic_number from lbmpy.stencils import get_stencil from pystencils.stencil import have_same_entries -from lbmpy.moments import is_even, gram_schmidt, get_default_moment_set_for_stencil, MOMENT_SYMBOLS, \ - exponents_to_polynomial_representations, moments_of_order, moments_up_to_component_order, \ - sort_moments_into_groups_of_same_order, get_order, discrete_moment from pystencils.sympyextensions import common_denominator -from lbmpy.methods.conservedquantitycomputation import DensityVelocityComputation -from lbmpy.methods.abstractlbmethod import RelaxationInfo -from lbmpy.maxwellian_equilibrium import get_moments_of_discrete_maxwellian_equilibrium, \ - get_moments_of_continuous_maxwellian_equilibrium, get_cumulants_of_discrete_maxwellian_equilibrium, \ - get_cumulants_of_continuous_maxwellian_equilibrium, compressible_to_incompressible_moment_value -from lbmpy.relaxationrates import relaxation_rate_from_magic_number, default_relaxation_rate_names def create_with_discrete_maxwellian_eq_moments(stencil, moment_to_relaxation_rate_dict, compressible=False, diff --git a/lbmpy/methods/cumulantbased.py b/lbmpy/methods/cumulantbased.py index 9756f34c5a77c0042c3ef79f2e702127c98ace66..415506bab23d89da72e30eff3d1675796cc3339b 100644 --- a/lbmpy/methods/cumulantbased.py +++ b/lbmpy/methods/cumulantbased.py @@ -1,11 +1,14 @@ -import sympy as sp from collections import OrderedDict -from pystencils import Assignment -from pystencils.sympyextensions import fast_subs, subs_additive + +import sympy as sp + +from lbmpy.cumulants import cumulant_as_function_of_raw_moments, raw_moment_as_function_of_cumulants from lbmpy.methods.abstractlbmethod import AbstractLbMethod, LbmCollisionRule, RelaxationInfo from lbmpy.methods.conservedquantitycomputation import AbstractConservedQuantityComputation -from lbmpy.moments import MOMENT_SYMBOLS, extract_monomials, moment_matrix, monomial_to_polynomial_transformation_matrix -from lbmpy.cumulants import cumulant_as_function_of_raw_moments, raw_moment_as_function_of_cumulants +from lbmpy.moments import ( + MOMENT_SYMBOLS, extract_monomials, moment_matrix, monomial_to_polynomial_transformation_matrix) +from pystencils import Assignment +from pystencils.sympyextensions import fast_subs, subs_additive class CumulantBasedLbMethod(AbstractLbMethod): diff --git a/lbmpy/methods/entropic.py b/lbmpy/methods/entropic.py index 862403e6a0b214ba8cca36fd548c3900bbf626cf..d3f2f90ff8ecc38423ef23bb03128d845ce18fab 100644 --- a/lbmpy/methods/entropic.py +++ b/lbmpy/methods/entropic.py @@ -1,7 +1,8 @@ import sympy as sp + +from lbmpy.relaxationrates import get_shear_relaxation_rate from pystencils import Assignment from pystencils.sympyextensions import fast_subs -from lbmpy.relaxationrates import get_shear_relaxation_rate def add_entropy_condition(collision_rule, omega_output_field=None): diff --git a/lbmpy/methods/entropic_eq_srt.py b/lbmpy/methods/entropic_eq_srt.py index 07afe6488d4f8bde27bd12faeea3ff51328d47db..52e5697a6cd373b312ae512fa93e04a85c0d5fdb 100644 --- a/lbmpy/methods/entropic_eq_srt.py +++ b/lbmpy/methods/entropic_eq_srt.py @@ -1,8 +1,9 @@ import sympy as sp -from pystencils import Assignment + from lbmpy.maxwellian_equilibrium import get_weights from lbmpy.methods.abstractlbmethod import AbstractLbMethod, LbmCollisionRule from lbmpy.methods.conservedquantitycomputation import DensityVelocityComputation +from pystencils import Assignment class EntropicEquilibriumSRT(AbstractLbMethod): diff --git a/lbmpy/methods/momentbased.py b/lbmpy/methods/momentbased.py index 55c8b0f769c1206849326648ad11146269c43e35..2c197c4fcc555a4eafa03c8fb9b68602cbd45942 100644 --- a/lbmpy/methods/momentbased.py +++ b/lbmpy/methods/momentbased.py @@ -1,10 +1,12 @@ -import sympy as sp from collections import OrderedDict -from pystencils import Assignment -from pystencils.sympyextensions import subs_additive + +import sympy as sp + from lbmpy.methods.abstractlbmethod import AbstractLbMethod, LbmCollisionRule, RelaxationInfo from lbmpy.methods.conservedquantitycomputation import AbstractConservedQuantityComputation from lbmpy.moments import MOMENT_SYMBOLS, moment_matrix +from pystencils import Assignment +from pystencils.sympyextensions import subs_additive class MomentBasedLbMethod(AbstractLbMethod): diff --git a/lbmpy/methods/momentbasedsimplifications.py b/lbmpy/methods/momentbasedsimplifications.py index 1888f3536f42189851824bc6ae7d945a5bc1dd45..5deb47f5a3a000767b63e96e34c37c3bdb337341 100644 --- a/lbmpy/methods/momentbasedsimplifications.py +++ b/lbmpy/methods/momentbasedsimplifications.py @@ -7,7 +7,8 @@ import sympy as sp from lbmpy.methods.abstractlbmethod import LbmCollisionRule from pystencils import Assignment -from pystencils.sympyextensions import subs_additive, replace_second_order_products, extract_most_common_factor +from pystencils.sympyextensions import ( + extract_most_common_factor, replace_second_order_products, subs_additive) def replace_second_order_velocity_products(cr: LbmCollisionRule): diff --git a/lbmpy/moments.py b/lbmpy/moments.py index fd0b9a238a4f59390eccd6e932956f1c1923ef55..0a5da08c2e724287cfc58e5cb86b47ab200e871c 100644 --- a/lbmpy/moments.py +++ b/lbmpy/moments.py @@ -36,15 +36,15 @@ Functions """ import itertools import math -from copy import copy from collections import Counter, defaultdict -from typing import Iterable, List, Sequence, Tuple, TypeVar, Optional +from copy import copy +from typing import Iterable, List, Optional, Sequence, Tuple, TypeVar + import sympy as sp from pystencils.cache import memorycache from pystencils.sympyextensions import remove_higher_order_terms - MOMENT_SYMBOLS = sp.symbols('x y z') T = TypeVar('T') diff --git a/lbmpy/parameterization.py b/lbmpy/parameterization.py index b6392188da9e01003188ce945f74377a20352ed8..e660c370f643c449dd9eefc8564a0962158b0053 100644 --- a/lbmpy/parameterization.py +++ b/lbmpy/parameterization.py @@ -1,8 +1,11 @@ from collections import namedtuple + import ipywidgets.widgets as widgets from IPython.display import display -from ipywidgets.widgets import FloatText, Label, VBox, HBox, Select, BoundedFloatText, Button -from lbmpy.relaxationrates import relaxation_rate_from_lattice_viscosity, lattice_viscosity_from_relaxation_rate +from ipywidgets.widgets import BoundedFloatText, Button, FloatText, HBox, Label, Select, VBox + +from lbmpy.relaxationrates import ( + lattice_viscosity_from_relaxation_rate, relaxation_rate_from_lattice_viscosity) class ScalingWidget: diff --git a/lbmpy/phasefield/analytical.py b/lbmpy/phasefield/analytical.py index ffbb4336fbae5f17eea4aca4c3505b83f8c2c2ec..dfd23718196b30658330c982ac030ebb3c6af569 100644 --- a/lbmpy/phasefield/analytical.py +++ b/lbmpy/phasefield/analytical.py @@ -1,7 +1,10 @@ -import sympy as sp from collections import defaultdict -from pystencils.sympyextensions import multidimensional_sum as multi_sum, normalize_product, prod -from pystencils.fd import functional_derivative, expand_diff_linear, Diff, expand_diff_full + +import sympy as sp + +from pystencils.fd import Diff, expand_diff_full, expand_diff_linear, functional_derivative +from pystencils.sympyextensions import multidimensional_sum as multi_sum +from pystencils.sympyextensions import normalize_product, prod order_parameter_symbol_name = "phi" surface_tension_symbol_name = "tau" diff --git a/lbmpy/phasefield/cahn_hilliard_lbm.py b/lbmpy/phasefield/cahn_hilliard_lbm.py index 02dd3ebc5a88d783b4c70517967e55ca4aaf70c1..c5e341a95031b9b338c781cd85e75141b4891f79 100644 --- a/lbmpy/phasefield/cahn_hilliard_lbm.py +++ b/lbmpy/phasefield/cahn_hilliard_lbm.py @@ -1,8 +1,9 @@ import sympy as sp + +from lbmpy.maxwellian_equilibrium import get_weights from lbmpy.methods.creationfunctions import create_from_equilibrium from lbmpy.stencils import get_stencil from pystencils.sympyextensions import kronecker_delta, multidimensional_sum -from lbmpy.maxwellian_equilibrium import get_weights def cahn_hilliard_lb_method(stencil, mu, relaxation_rate=sp.Symbol("omega"), gamma=1): diff --git a/lbmpy/phasefield/eos.py b/lbmpy/phasefield/eos.py index fbdbfd4bd524c35aad281b893bc0d0e1ae6adb4f..8ace5ec6f26278f5e303b682940be2c8554a4b6e 100644 --- a/lbmpy/phasefield/eos.py +++ b/lbmpy/phasefield/eos.py @@ -1,7 +1,6 @@ import sympy as sp -from pystencils.cache import disk_cache - +from pystencils.cache import disk_cache # ---------------------------------- Equations of state ---------------------------------------------------------------- from pystencils.sympyextensions import remove_small_floats diff --git a/lbmpy/phasefield/experiments2D.py b/lbmpy/phasefield/experiments2D.py index 24d6ca02261c58351fa272c8c6a79bdd73f909e8..38d1e8bc2983265ca0d0b5419c01e5a6707b6ee6 100644 --- a/lbmpy/phasefield/experiments2D.py +++ b/lbmpy/phasefield/experiments2D.py @@ -1,6 +1,7 @@ import sympy as sp -from lbmpy.phasefield.phasefieldstep import PhaseFieldStep + from lbmpy.phasefield.analytical import free_energy_functional_n_phases_penalty_term +from lbmpy.phasefield.phasefieldstep import PhaseFieldStep from lbmpy.phasefield.scenarios import create_three_phase_model from pystencils import make_slice diff --git a/lbmpy/phasefield/high_density_ratio_model.py b/lbmpy/phasefield/high_density_ratio_model.py index 819808f1689892752de4b0a4a0642a20f02d7b71..c4c22af73bd73a2ed95f00e82bcad16081f328ac 100644 --- a/lbmpy/phasefield/high_density_ratio_model.py +++ b/lbmpy/phasefield/high_density_ratio_model.py @@ -1,6 +1,7 @@ import sympy as sp -from pystencils.fd import Diff + from lbmpy.phasefield.eos import free_energy_from_eos +from pystencils.fd import Diff from pystencils.sympyextensions import remove_small_floats diff --git a/lbmpy/phasefield/kerneleqs.py b/lbmpy/phasefield/kerneleqs.py index 8141b0ccf38177a951e0d98c822d3c8bb9fc179c..21a51cd4ee2a5cedaf06e90d9daa862192eeb6fb 100644 --- a/lbmpy/phasefield/kerneleqs.py +++ b/lbmpy/phasefield/kerneleqs.py @@ -1,10 +1,11 @@ import sympy as sp + +from lbmpy.phasefield.analytical import ( + chemical_potentials_from_free_energy, force_from_phi_and_mu, force_from_pressure_tensor, + pressure_tensor_bulk_sqrt_term, pressure_tensor_from_free_energy, substitute_laplacian_by_sum, + symmetric_tensor_linearization) from pystencils import Assignment from pystencils.fd import Discretization2ndOrder, discretize_spatial -from lbmpy.phasefield.analytical import chemical_potentials_from_free_energy, substitute_laplacian_by_sum, \ - force_from_phi_and_mu, symmetric_tensor_linearization, pressure_tensor_from_free_energy, \ - force_from_pressure_tensor, pressure_tensor_bulk_sqrt_term - # ---------------------------------- Kernels to compute force ---------------------------------------------------------- diff --git a/lbmpy/phasefield/n_phase_boyer.py b/lbmpy/phasefield/n_phase_boyer.py index bdcac888c9c2f90a2b47b5e20bed0ec3b161ece9..c4918a141a57a265bc8c6552327e537fab3923b2 100644 --- a/lbmpy/phasefield/n_phase_boyer.py +++ b/lbmpy/phasefield/n_phase_boyer.py @@ -2,13 +2,14 @@ Hierarchy of consistent n-component Cahn-Hilliard systems by Franck Boyer, Sebastian Minjeaud """ -import sympy as sp from itertools import combinations +import sympy as sp + +import pystencils.fd as fd from lbmpy.phasefield.analytical import chemical_potentials_from_free_energy from pystencils.cache import memorycache from pystencils.fd import Diff -import pystencils.fd as fd from pystencils.sympyextensions import prod diff --git a/lbmpy/phasefield/nphase_nestler.py b/lbmpy/phasefield/nphase_nestler.py index c33419a1ea5ec4e89f5d5c59662c282b065c8f16..7ca7e8983465e07f4405395fa3e88440251bda10 100644 --- a/lbmpy/phasefield/nphase_nestler.py +++ b/lbmpy/phasefield/nphase_nestler.py @@ -1,16 +1,17 @@ +import pyximport import sympy as sp + from lbmpy.creationfunctions import create_lb_update_rule from lbmpy.macroscopic_value_kernels import pdf_initialization_assignments from lbmpy.phasefield.analytical import chemical_potentials_from_free_energy, force_from_phi_and_mu from lbmpy.phasefield.cahn_hilliard_lbm import cahn_hilliard_lb_method +from lbmpy.phasefield.simplex_projection import simplex_projection_2d # NOQA from lbmpy.stencils import get_stencil -from pystencils import create_data_handling, Assignment, create_kernel -from pystencils.fd import Diff, expand_diff_full, discretize_spatial +from pystencils import Assignment, create_data_handling, create_kernel +from pystencils.fd import Diff, discretize_spatial, expand_diff_full from pystencils.fd.derivation import FiniteDifferenceStencilDerivation -import pyximport pyximport.install(language_level=3) -from lbmpy.phasefield.simplex_projection import simplex_projection_2d # NOQA def forth_order_isotropic_discretize(field): diff --git a/lbmpy/phasefield/phasefieldstep.py b/lbmpy/phasefield/phasefieldstep.py index 31b070d9c0f0733ecb995b571797cc5dbbb213cc..46b713db826584c7b36dca9cb794276a5493416e 100644 --- a/lbmpy/phasefield/phasefieldstep.py +++ b/lbmpy/phasefield/phasefieldstep.py @@ -1,18 +1,19 @@ from types import MappingProxyType -import sympy as sp import numpy as np +import sympy as sp from lbmpy.lbstep import LatticeBoltzmannStep +from lbmpy.phasefield.analytical import ( + chemical_potentials_from_free_energy, symmetric_tensor_linearization) from lbmpy.phasefield.cahn_hilliard_lbm import cahn_hilliard_lb_method -from lbmpy.phasefield.kerneleqs import mu_kernel, CahnHilliardFDStep, pressure_tensor_kernel, \ - force_kernel_using_pressure_tensor -from pystencils import create_kernel, create_data_handling -from lbmpy.phasefield.analytical import chemical_potentials_from_free_energy, symmetric_tensor_linearization +from lbmpy.phasefield.kerneleqs import ( + CahnHilliardFDStep, force_kernel_using_pressure_tensor, mu_kernel, pressure_tensor_kernel) +from pystencils import create_data_handling, create_kernel from pystencils.boundaries.boundaryhandling import FlagInterface from pystencils.boundaries.inkernel import add_neumann_boundary from pystencils.simp import sympy_cse_on_assignment_list -from pystencils.slicing import make_slice, SlicedGetter +from pystencils.slicing import SlicedGetter, make_slice class PhaseFieldStep: diff --git a/lbmpy/phasefield/phasefieldstep_direct.py b/lbmpy/phasefield/phasefieldstep_direct.py index 3937e37f8873cfb616178aca60844194201442aa..bfd05153fafc607ad261d2937ceb6d3b9b272946 100644 --- a/lbmpy/phasefield/phasefieldstep_direct.py +++ b/lbmpy/phasefield/phasefieldstep_direct.py @@ -1,11 +1,12 @@ import numpy as np + from lbmpy.creationfunctions import create_lb_function from lbmpy.macroscopic_value_kernels import pdf_initialization_assignments from lbmpy.phasefield.analytical import force_from_phi_and_mu from lbmpy.phasefield.cahn_hilliard_lbm import cahn_hilliard_lb_method from lbmpy.phasefield.kerneleqs import mu_kernel from lbmpy.stencils import get_stencil -from pystencils import create_data_handling, Assignment, create_kernel +from pystencils import Assignment, create_data_handling, create_kernel from pystencils.fd import discretize_spatial from pystencils.fd.spatial import fd_stencils_forth_order_isotropic from pystencils.simp import sympy_cse_on_assignment_list diff --git a/lbmpy/phasefield/post_processing.py b/lbmpy/phasefield/post_processing.py index c215bb557a986ee3c1bfe60e652e8d128174b168..c97112aadfd66b8a5f049214d3c97f0c93010f91 100644 --- a/lbmpy/phasefield/post_processing.py +++ b/lbmpy/phasefield/post_processing.py @@ -1,7 +1,7 @@ -from collections import namedtuple -import numpy as np import warnings +from collections import namedtuple +import numpy as np TriplePoint = namedtuple("TriplePoint", ['center', 'branch_points', 'angles']) diff --git a/lbmpy/phasefield/scenarios.py b/lbmpy/phasefield/scenarios.py index f8d9df1ff3455d83fef42311f45a0dac625a9396..8912cd985d40de5f4aa18504da71b738d60b7a06 100644 --- a/lbmpy/phasefield/scenarios.py +++ b/lbmpy/phasefield/scenarios.py @@ -1,9 +1,12 @@ -import sympy as sp -import numpy as np import warnings + +import numpy as np +import sympy as sp + +from lbmpy.phasefield.analytical import ( + free_energy_functional_3_phases, free_energy_functional_n_phases, + free_energy_functional_n_phases_penalty_term, symbolic_order_parameters) from lbmpy.phasefield.phasefieldstep import PhaseFieldStep -from lbmpy.phasefield.analytical import free_energy_functional_3_phases, free_energy_functional_n_phases, \ - symbolic_order_parameters, free_energy_functional_n_phases_penalty_term def create_three_phase_model(alpha=1, kappa=(0.015, 0.015, 0.015), include_rho=True, **kwargs): diff --git a/lbmpy/quadratic_equilibrium_construction.py b/lbmpy/quadratic_equilibrium_construction.py index d4159476b7440d2c2a37ff8a8944719e63d2dcda..207534a26206978e7a94de5b8581bdedda453ae2 100644 --- a/lbmpy/quadratic_equilibrium_construction.py +++ b/lbmpy/quadratic_equilibrium_construction.py @@ -3,11 +3,12 @@ Method to construct a quadratic equilibrium using a generic quadratic ansatz acc Wolf-Gladrow, section 5.4 """ -import sympy as sp import numpy as np -from pystencils.sympyextensions import scalar_product -from lbmpy.moments import discrete_moment +import sympy as sp + from lbmpy.maxwellian_equilibrium import compressible_to_incompressible_moment_value +from lbmpy.moments import discrete_moment +from pystencils.sympyextensions import scalar_product def generic_equilibrium_ansatz(stencil, u=sp.symbols("u_:3")): diff --git a/lbmpy/relaxationrates.py b/lbmpy/relaxationrates.py index 15c6b40a588612d68fd3a3823e60a224afb412db..2e365162d5505dca814c613285a219b3be78b7f5 100644 --- a/lbmpy/relaxationrates.py +++ b/lbmpy/relaxationrates.py @@ -1,5 +1,6 @@ import sympy as sp -from lbmpy.moments import is_shear_moment, get_order + +from lbmpy.moments import get_order, is_shear_moment def relaxation_rate_from_lattice_viscosity(nu): diff --git a/lbmpy/scenarios.py b/lbmpy/scenarios.py index 705da61ebcee3fbf2bc23b4fd63b452a5d196f89..6d838bbefba08b1caf6db2e045a7dc63457dcb73 100644 --- a/lbmpy/scenarios.py +++ b/lbmpy/scenarios.py @@ -26,11 +26,12 @@ at :mod:`lbmpy.creationfunctions`. The only mandatory keyword parameter is ``rel that defines the viscosity of the fluid (valid values being between 0 and 2). """ import numpy as np -from lbmpy.geometry import add_pipe_walls, add_pipe_inflow_boundary + +from lbmpy.boundaries import UBB, FixedDensity, NoSlip +from lbmpy.geometry import add_pipe_inflow_boundary, add_pipe_walls from lbmpy.lbstep import LatticeBoltzmannStep from pystencils.datahandling import create_data_handling from pystencils.slicing import slice_from_direction -from lbmpy.boundaries import NoSlip, UBB, FixedDensity def create_fully_periodic_flow(initial_velocity, periodicity_in_kernel=False, lbm_kernel=None, diff --git a/lbmpy/session.py b/lbmpy/session.py index eca49f4767cd08e37a73349cbfc06a55a7893658..baf9cdabbe80fe61813a48dd99ae3f3531309df1 100644 --- a/lbmpy/session.py +++ b/lbmpy/session.py @@ -1,14 +1,15 @@ -from pystencils.sympy_gmpy_bug_workaround import * -import pystencils as ps -import sympy as sp import numpy as np -from lbmpy.scenarios import * -from lbmpy.creationfunctions import * -from pystencils import make_slice, show_code +import sympy as sp + +import lbmpy.plot as plt +import pystencils as ps from lbmpy.boundaries import * -from lbmpy.postprocessing import * -from lbmpy.lbstep import LatticeBoltzmannStep +from lbmpy.creationfunctions import * from lbmpy.geometry import * +from lbmpy.lbstep import LatticeBoltzmannStep from lbmpy.parameterization import ScalingWidget -import lbmpy.plot as plt +from lbmpy.postprocessing import * +from lbmpy.scenarios import * +from pystencils import make_slice, show_code from pystencils.jupyter import * +from pystencils.sympy_gmpy_bug_workaround import * diff --git a/lbmpy/simplificationfactory.py b/lbmpy/simplificationfactory.py index e70895bfd9b6595cef05793db0bed432d92ffc73..bd0bec628fe4530fd21ca540e3614b83b7f8a397 100644 --- a/lbmpy/simplificationfactory.py +++ b/lbmpy/simplificationfactory.py @@ -1,8 +1,10 @@ import sympy as sp + from lbmpy.innerloopsplit import create_lbm_split_groups from lbmpy.methods.cumulantbased import CumulantBasedLbMethod -from pystencils.simp import apply_to_all_assignments, \ - subexpression_substitution_in_main_assignments, sympy_cse, add_subexpressions_for_divisions +from pystencils.simp import ( + add_subexpressions_for_divisions, apply_to_all_assignments, + subexpression_substitution_in_main_assignments, sympy_cse) def create_simplification_strategy(lb_method, cse_pdfs=False, cse_global=False, split_inner_loop=False): diff --git a/lbmpy/sparse/__init__.py b/lbmpy/sparse/__init__.py index 21b71f216eb9e87e016fdc7db40810d08b585b12..aee57011373a4d2eb2beaa050072a132d6f424dd 100644 --- a/lbmpy/sparse/__init__.py +++ b/lbmpy/sparse/__init__.py @@ -1,6 +1,7 @@ from .mapping import SparseLbBoundaryMapper, SparseLbMapper -from .update_rule_sparse import create_lb_update_rule_sparse, create_macroscopic_value_getter_sparse, \ - create_macroscopic_value_setter_sparse, create_symbolic_list +from .update_rule_sparse import ( + create_lb_update_rule_sparse, create_macroscopic_value_getter_sparse, + create_macroscopic_value_setter_sparse, create_symbolic_list) __all__ = ['SparseLbBoundaryMapper', 'SparseLbMapper', 'create_lb_update_rule_sparse', 'create_macroscopic_value_setter_sparse', 'create_macroscopic_value_getter_sparse', diff --git a/lbmpy/sparse/mapping.py b/lbmpy/sparse/mapping.py index bf903881e07626da5bff6a8d423af30cb7c36d35..4c822f31df43ddcbcab98db126a7887016589dd8 100644 --- a/lbmpy/sparse/mapping.py +++ b/lbmpy/sparse/mapping.py @@ -1,12 +1,13 @@ -import sympy as sp -import numpy as np from typing import Tuple +import numpy as np +import sympy as sp + from lbmpy.boundaries.boundaryhandling import LbmWeightInfo -from pystencils import Field, TypedSymbol, Assignment +from pystencils import Assignment, Field, TypedSymbol from pystencils.boundaries.boundaryhandling import BoundaryOffsetInfo -from pystencils.boundaries.createindexlist import create_boundary_index_list, boundary_index_array_coordinate_names, \ - direction_member_name +from pystencils.boundaries.createindexlist import ( + boundary_index_array_coordinate_names, create_boundary_index_list, direction_member_name) class SparseLbMapper: diff --git a/lbmpy/sparse/update_rule_sparse.py b/lbmpy/sparse/update_rule_sparse.py index 61c014af19d3e9588f14b2a79d3b85b3438570b3..00d5ecf27b5a8869f3dd548f57b3eec4e7914d82 100644 --- a/lbmpy/sparse/update_rule_sparse.py +++ b/lbmpy/sparse/update_rule_sparse.py @@ -1,7 +1,6 @@ -from pystencils import AssignmentCollection, Assignment -from pystencils.field import Field, FieldType +from pystencils import Assignment, AssignmentCollection # noinspection PyProtectedMember -from pystencils.field import compute_strides +from pystencils.field import Field, FieldType, compute_strides AC = AssignmentCollection diff --git a/lbmpy/turbulence_models.py b/lbmpy/turbulence_models.py index 6e742aa2df5d1d970d417c357a3bd5209f31fb82..6b67fa3c9126d4506ffba9d91b5b5f54c08a1eb3 100644 --- a/lbmpy/turbulence_models.py +++ b/lbmpy/turbulence_models.py @@ -1,7 +1,7 @@ import sympy as sp -from pystencils import Assignment from lbmpy.relaxationrates import get_shear_relaxation_rate +from pystencils import Assignment def second_order_moment_tensor(function_values, stencil): diff --git a/lbmpy/updatekernels.py b/lbmpy/updatekernels.py index 82b7f3f812ca994312125d8cef4de9be9c4f7701..c3cfb6acd0de90970f3586ad43b6a20119a5c3d9 100644 --- a/lbmpy/updatekernels.py +++ b/lbmpy/updatekernels.py @@ -1,13 +1,12 @@ import numpy as np import sympy as sp -from pystencils import Field, Assignment, AssignmentCollection +from lbmpy.fieldaccess import StreamPullTwoFieldsAccessor +from lbmpy.methods.abstractlbmethod import LbmCollisionRule +from pystencils import Assignment, AssignmentCollection, Field from pystencils.field import create_numpy_array_with_layout, layout_string_to_tuple from pystencils.simp import add_subexpressions_for_field_reads from pystencils.sympyextensions import fast_subs -from lbmpy.methods.abstractlbmethod import LbmCollisionRule -from lbmpy.fieldaccess import StreamPullTwoFieldsAccessor - # -------------------------------------------- LBM Kernel Creation ----------------------------------------------------- diff --git a/lbmpy_tests/benchmark/evaluation.py b/lbmpy_tests/benchmark/evaluation.py index 305e6508db078900acac90b6bbf8dff256d22efa..7f6009dfab461a8d779935d1da3ba6d375e15261 100644 --- a/lbmpy_tests/benchmark/evaluation.py +++ b/lbmpy_tests/benchmark/evaluation.py @@ -1,5 +1,5 @@ """Function to process benchmark results in pandas.""" -from pystencils.runhelper.db import remove_constant_columns, Database +from pystencils.runhelper.db import Database, remove_constant_columns db = None diff --git a/lbmpy_tests/benchmark/test_benchmark.py b/lbmpy_tests/benchmark/test_benchmark.py index b8192dcca9fb40375455a2eb83db7040156bceb3..0088096fafae93c94050841a7fc7ac9a02f466a7 100644 --- a/lbmpy_tests/benchmark/test_benchmark.py +++ b/lbmpy_tests/benchmark/test_benchmark.py @@ -1,10 +1,12 @@ -import pytest +from statistics import median + import numpy as np +import pytest import sympy as sp + from lbmpy.scenarios import create_lid_driven_cavity -from pystencils.runhelper import ParameterStudy -from statistics import median from pystencils.cpu.cpujit import add_or_change_compiler_flags +from pystencils.runhelper import ParameterStudy def parameter_filter(parameters): diff --git a/lbmpy_tests/full_scenarios/kida_vortex_flow/scenario_kida_vortex_flow.py b/lbmpy_tests/full_scenarios/kida_vortex_flow/scenario_kida_vortex_flow.py index beeaa58c63f930f7898460e66f26c0ba6dbacded..c111617434047731542d8597b6513ae8cbdf299c 100644 --- a/lbmpy_tests/full_scenarios/kida_vortex_flow/scenario_kida_vortex_flow.py +++ b/lbmpy_tests/full_scenarios/kida_vortex_flow/scenario_kida_vortex_flow.py @@ -4,12 +4,13 @@ Boesch, Chikatamarla, Karlin: Entropic multirelaxation lattice Boltzmann models """ import numpy as np import sympy as sp + import pystencils as ps from lbmpy.lbstep import LatticeBoltzmannStep -from lbmpy.relaxationrates import relaxation_rate_from_lattice_viscosity, relaxation_rate_from_magic_number +from lbmpy.relaxationrates import ( + relaxation_rate_from_lattice_viscosity, relaxation_rate_from_magic_number) from pystencils.runhelper import ParameterStudy - # --------------------------------------------- Setup ------------------------------------------------------------------ @@ -288,4 +289,3 @@ def create_full_parameter_study(gpu=False): if __name__ == '__main__': parameter_study = create_full_parameter_study(gpu=True) parameter_study.run_from_command_line() - diff --git a/lbmpy_tests/full_scenarios/rod/scenario_rod.py b/lbmpy_tests/full_scenarios/rod/scenario_rod.py index fe87bac3438a495317d64fbb04cac987fa35eda4..996c3f549bfb079b17a1087aef112d2388fd672a 100644 --- a/lbmpy_tests/full_scenarios/rod/scenario_rod.py +++ b/lbmpy_tests/full_scenarios/rod/scenario_rod.py @@ -8,8 +8,10 @@ The deficiencies of the D3Q19 model can be resolved by choosing a better equilib """ import os import sys + import numpy as np import sympy as sp + from lbmpy.boundaries import FixedDensity, NoSlip from lbmpy.geometry import add_pipe_inflow_boundary, add_pipe_walls from lbmpy.lbstep import LatticeBoltzmannStep diff --git a/lbmpy_tests/full_scenarios/schaefer_turek/scenario_schaefer_turek.py b/lbmpy_tests/full_scenarios/schaefer_turek/scenario_schaefer_turek.py index f232bf9b9cf7a1d3d836625699572c71fded5bbf..f84fa790364748a43e05f595ac9e3e417f98675d 100644 --- a/lbmpy_tests/full_scenarios/schaefer_turek/scenario_schaefer_turek.py +++ b/lbmpy_tests/full_scenarios/schaefer_turek/scenario_schaefer_turek.py @@ -5,8 +5,10 @@ a cylinder. In Flow simulation with high-performance computers II (pp. 547-566). - boundaries are not set correctly yet (halfway-bounce back is not considered) """ -import numpy as np import warnings + +import numpy as np + from lbmpy.boundaries.boundaryconditions import NoSlip from lbmpy.geometry import get_pipe_velocity_field from lbmpy.relaxationrates import relaxation_rate_from_lattice_viscosity diff --git a/lbmpy_tests/full_scenarios/shear_wave/scenario_shear_wave.py b/lbmpy_tests/full_scenarios/shear_wave/scenario_shear_wave.py index 22a8f03dfe58801090ec62b596b3c73b22f2244e..09af0c74d3ceda570ef15093b706f60a856d9d97 100644 --- a/lbmpy_tests/full_scenarios/shear_wave/scenario_shear_wave.py +++ b/lbmpy_tests/full_scenarios/shear_wave/scenario_shear_wave.py @@ -6,9 +6,11 @@ """ import numpy as np import sympy as sp -from lbmpy.scenarios import create_fully_periodic_flow -from lbmpy.relaxationrates import relaxation_rate_from_lattice_viscosity, relaxation_rate_from_magic_number + from lbmpy.creationfunctions import update_with_default_parameters +from lbmpy.relaxationrates import ( + relaxation_rate_from_lattice_viscosity, relaxation_rate_from_magic_number) +from lbmpy.scenarios import create_fully_periodic_flow def get_exponent_term(l, **kwargs): diff --git a/lbmpy_tests/full_scenarios/square_channel/scenario_square_channel.py b/lbmpy_tests/full_scenarios/square_channel/scenario_square_channel.py index a1082e57c3804f37c8467804e0702c10a09699dc..2e75a2727ae6522da8ad665516046b53e5e251d0 100644 --- a/lbmpy_tests/full_scenarios/square_channel/scenario_square_channel.py +++ b/lbmpy_tests/full_scenarios/square_channel/scenario_square_channel.py @@ -12,10 +12,9 @@ python3 scenario_square_channel.py client --host i10staff41 -P '{ "optimization" import numpy as np import sympy as sp -from pystencils import make_slice -from lbmpy.scenarios import create_channel from lbmpy.methods.creationfunctions import relaxation_rate_from_magic_number - +from lbmpy.scenarios import create_channel +from pystencils import make_slice defaultParameters = { 'stencil': 'D3Q19', diff --git a/lbmpy_tests/lattice_tensors.py b/lbmpy_tests/lattice_tensors.py index d58fc7512258fa335b2f44d576a87b5963140ecb..94327c37709bab7a4d464fca7201bdc0aa9622d4 100644 --- a/lbmpy_tests/lattice_tensors.py +++ b/lbmpy_tests/lattice_tensors.py @@ -1,4 +1,5 @@ import itertools + from pystencils.sympyextensions import kronecker_delta as kd diff --git a/lbmpy_tests/phasefield/test_force_computation_equivalence.py b/lbmpy_tests/phasefield/test_force_computation_equivalence.py index 8a07e3c3348536d507ee4abcdadfad01ebc90583..58e19c15b36272213bf1329c6a1de16021807adc 100644 --- a/lbmpy_tests/phasefield/test_force_computation_equivalence.py +++ b/lbmpy_tests/phasefield/test_force_computation_equivalence.py @@ -4,8 +4,10 @@ more stable. Mathematically they should be equivalent. This test ensures that the complicated pressure tensor formulation yields the same force as computed directly.""" import sympy as sp -from lbmpy.phasefield.analytical import chemical_potentials_from_free_energy, substitute_laplacian_by_sum, \ - pressure_tensor_interface_component_new, force_from_pressure_tensor, force_from_phi_and_mu + +from lbmpy.phasefield.analytical import ( + chemical_potentials_from_free_energy, force_from_phi_and_mu, force_from_pressure_tensor, + pressure_tensor_interface_component_new, substitute_laplacian_by_sum) from pystencils.fd import Diff, expand_diff_full, normalize_diff_order @@ -34,4 +36,4 @@ def force_computation_equivalence(dim=3, num_phases=4): if __name__ == '__main__': - force_computation_equivalence() \ No newline at end of file + force_computation_equivalence() diff --git a/lbmpy_tests/phasefield/test_nestler_model.py b/lbmpy_tests/phasefield/test_nestler_model.py index 078f1a4f9b043d6e2c56be11c55f0de2ea331af3..1a43d4f7faf0e954108ec99a6e1a3f403ea02977 100644 --- a/lbmpy_tests/phasefield/test_nestler_model.py +++ b/lbmpy_tests/phasefield/test_nestler_model.py @@ -1,6 +1,8 @@ -import sympy as sp -import numpy as np from collections import defaultdict + +import numpy as np +import sympy as sp + from lbmpy.phasefield.nphase_nestler import create_model @@ -44,4 +46,3 @@ def test_main(): res = run(100) assert np.isfinite(np.max(res)) - diff --git a/lbmpy_tests/phasefield/test_nphase_1D.py b/lbmpy_tests/phasefield/test_nphase_1D.py index f0722f645138d6195d8337ce8212742cec41e1fe..ce265386c35110c8ef985de28d68df390ef49f95 100644 --- a/lbmpy_tests/phasefield/test_nphase_1D.py +++ b/lbmpy_tests/phasefield/test_nphase_1D.py @@ -1,7 +1,10 @@ -import numpy as np from functools import partial -from lbmpy.phasefield.analytical import n_phases_correction_function, analytic_interface_profile, \ - n_phases_correction_function_sign_switch + +import numpy as np + +from lbmpy.phasefield.analytical import ( + analytic_interface_profile, n_phases_correction_function, + n_phases_correction_function_sign_switch) from lbmpy.phasefield.experiments1D import init_sharp_interface from lbmpy.phasefield.scenarios import create_n_phase_model from pystencils import create_data_handling, make_slice diff --git a/lbmpy_tests/phasefield/test_nphase_2D.py b/lbmpy_tests/phasefield/test_nphase_2D.py index 018feeaf788280151b8f3c5c2a76e7b29a175180..7d4359d90a1e09ce3494ff5175cafc2393cec56e 100644 --- a/lbmpy_tests/phasefield/test_nphase_2D.py +++ b/lbmpy_tests/phasefield/test_nphase_2D.py @@ -1,13 +1,15 @@ -import numpy as np from functools import partial -from lbmpy.phasefield.analytical import n_phases_correction_function, n_phases_correction_function_sign_switch +from time import time + +import numpy as np + +from lbmpy.phasefield.analytical import ( + n_phases_correction_function, n_phases_correction_function_sign_switch) from lbmpy.phasefield.contact_angle_circle_fitting import liquid_lens_neumann_angles from lbmpy.phasefield.post_processing import analytic_neumann_angles from lbmpy.phasefield.scenarios import create_n_phase_model, create_three_phase_model from pystencils import create_data_handling, make_slice from pystencils.runhelper import ParameterStudy -from time import time - from pystencils.utils import boolean_array_bounding_box color = {'yellow': '\033[93m', @@ -215,5 +217,3 @@ def main(): if __name__ == '__main__': main() - - diff --git a/lbmpy_tests/test_boundary_handling.py b/lbmpy_tests/test_boundary_handling.py index 9af8e404fa1d7a3ad03dd4f42524dbf4fc7a3b42..25589c2cd76a91c6f0b0db90e0fff58ce2c7433b 100644 --- a/lbmpy_tests/test_boundary_handling.py +++ b/lbmpy_tests/test_boundary_handling.py @@ -1,10 +1,11 @@ import numpy as np -from pystencils import make_slice, create_data_handling -from lbmpy.creationfunctions import create_lb_function + +from lbmpy.boundaries import UBB, NeumannByCopy, NoSlip, StreamInConstant from lbmpy.boundaries.boundaryhandling import LatticeBoltzmannBoundaryHandling -from lbmpy.boundaries import NoSlip, UBB, StreamInConstant, NeumannByCopy -from lbmpy.lbstep import LatticeBoltzmannStep +from lbmpy.creationfunctions import create_lb_function from lbmpy.geometry import add_box_boundary +from lbmpy.lbstep import LatticeBoltzmannStep +from pystencils import create_data_handling, make_slice def test_simple(): diff --git a/lbmpy_tests/test_boundary_indexlist_creation.py b/lbmpy_tests/test_boundary_indexlist_creation.py index f0898dde0c14aee72fe895bd1091f51e29971f61..29493ca6817db24cf4ce4f61b0e5720632e43306 100644 --- a/lbmpy_tests/test_boundary_indexlist_creation.py +++ b/lbmpy_tests/test_boundary_indexlist_creation.py @@ -1,4 +1,5 @@ import numpy as np + import pystencils.boundaries.createindexlist as cil from lbmpy.stencils import get_stencil diff --git a/lbmpy_tests/test_builtin_periodicity.py b/lbmpy_tests/test_builtin_periodicity.py index cc1eca2fc51015a366dce8cb7dab053e67a34b58..35e4d30750e27ff0e9537f979d5b5955ca407030 100644 --- a/lbmpy_tests/test_builtin_periodicity.py +++ b/lbmpy_tests/test_builtin_periodicity.py @@ -1,4 +1,5 @@ import numpy as np + from lbmpy.geometry import get_shear_flow_velocity_field from lbmpy.scenarios import create_fully_periodic_flow diff --git a/lbmpy_tests/test_chapman_enskog.py b/lbmpy_tests/test_chapman_enskog.py index 8cabf4f2ba5488cb49103a10133fef52f74e0c1c..6601735064c98150516e89a3894eeaf6e652e1f0 100644 --- a/lbmpy_tests/test_chapman_enskog.py +++ b/lbmpy_tests/test_chapman_enskog.py @@ -1,16 +1,20 @@ +import functools + import pytest import sympy as sp -import functools -from pystencils.fd import Diff, normalize_diff_order -from pystencils.sympyextensions import multidimensional_sum -from lbmpy.chapman_enskog.chapman_enskog_higher_order import determine_higher_order_moments, get_solvability_conditions -from lbmpy.chapman_enskog.chapman_enskog_steady_state import SteadyStateChapmanEnskogAnalysisSRT, \ - SteadyStateChapmanEnskogAnalysis -from lbmpy.chapman_enskog.chapman_enskog import ChapmanEnskogAnalysis, LbMethodEqMoments, take_moments, \ - get_taylor_expanded_lb_equation, chapman_enskog_ansatz -from lbmpy.relaxationrates import lattice_viscosity_from_relaxation_rate + +from lbmpy.chapman_enskog.chapman_enskog import ( + ChapmanEnskogAnalysis, LbMethodEqMoments, chapman_enskog_ansatz, + get_taylor_expanded_lb_equation, take_moments) +from lbmpy.chapman_enskog.chapman_enskog_higher_order import ( + determine_higher_order_moments, get_solvability_conditions) +from lbmpy.chapman_enskog.chapman_enskog_steady_state import ( + SteadyStateChapmanEnskogAnalysis, SteadyStateChapmanEnskogAnalysisSRT) from lbmpy.creationfunctions import create_lb_method from lbmpy.forcemodels import Guo +from lbmpy.relaxationrates import lattice_viscosity_from_relaxation_rate +from pystencils.fd import Diff, normalize_diff_order +from pystencils.sympyextensions import multidimensional_sum def test_srt(): diff --git a/lbmpy_tests/test_code_hashequivalence.py b/lbmpy_tests/test_code_hashequivalence.py index 62d2daaf8a9285d05d3895778c8b7f0240321ecf..c7537c8274505a0fe85101269c1da0d28b52b8fd 100644 --- a/lbmpy_tests/test_code_hashequivalence.py +++ b/lbmpy_tests/test_code_hashequivalence.py @@ -1,7 +1,8 @@ from hashlib import sha256 + +from lbmpy.creationfunctions import create_lb_ast from pystencils.backends.cbackend import generate_c from pystencils.llvm.llvmjit import generate_llvm -from lbmpy.creationfunctions import create_lb_ast def test_hash_equivalence(): @@ -10,7 +11,7 @@ def test_hash_equivalence(): exactly the same code (not only functionally equivalent code) should be produced. Due to undefined order in sets and dicts this may no be the case. """ - ref_value = "bd20ebb3cb8ca2aa00128a0920c5c0fa5b1b15251111e5695c1759fe29849743" + ref_value = "2cde9763ab71a9d5caba056e6d0011e553fa01ab71668ee32024ce3f68e7d698" ast = create_lb_ast(stencil='D3Q19', method='srt', optimization={'openmp': False}) code = generate_c(ast) hash_value = sha256(code.encode()).hexdigest() diff --git a/lbmpy_tests/test_conserved_quantity_relaxation_invariance.py b/lbmpy_tests/test_conserved_quantity_relaxation_invariance.py index d5b6763901a0ce17f351fef7300f46da1e99deed..fa36ab07fb416a6be69cc2c702e422f88780b97a 100644 --- a/lbmpy_tests/test_conserved_quantity_relaxation_invariance.py +++ b/lbmpy_tests/test_conserved_quantity_relaxation_invariance.py @@ -2,15 +2,17 @@ The update equations should not change if a relaxation rate of a conserved quantity (density/velocity) changes. This test checks that for moment-based methods """ +from copy import copy + import pytest import sympy as sp -from copy import copy -from lbmpy.methods.creationfunctions import create_srt, create_trt, create_trt_kbc, RelaxationInfo + +from lbmpy.methods.creationfunctions import RelaxationInfo, create_srt, create_trt, create_trt_kbc from lbmpy.methods.cumulantbased import CumulantBasedLbMethod from lbmpy.methods.momentbased import MomentBasedLbMethod +from lbmpy.moments import MOMENT_SYMBOLS from lbmpy.simplificationfactory import create_simplification_strategy from lbmpy.stencils import get_stencil -from lbmpy.moments import MOMENT_SYMBOLS def __change_relaxation_rate_of_conserved_moments(method, new_relaxation_rate=sp.Symbol("test_omega")): diff --git a/lbmpy_tests/test_cpu_gpu_equivalence.py b/lbmpy_tests/test_cpu_gpu_equivalence.py index f1749c9f20800e9a8942cf004a16dc50f7efbd57..8efa14781bf9abbf0ee81b1b4080ca4da5ac6e8f 100644 --- a/lbmpy_tests/test_cpu_gpu_equivalence.py +++ b/lbmpy_tests/test_cpu_gpu_equivalence.py @@ -1,6 +1,8 @@ -import pytest -import numpy as np from copy import deepcopy + +import numpy as np +import pytest + from lbmpy.scenarios import create_channel diff --git a/lbmpy_tests/test_cumulants.py b/lbmpy_tests/test_cumulants.py index 8fa17c1cfbd46b4e02c70b91093111ee056d3c1e..8dc4542ef12140ef3659dc21ce1adbf59342fb21 100644 --- a/lbmpy_tests/test_cumulants.py +++ b/lbmpy_tests/test_cumulants.py @@ -1,8 +1,8 @@ from lbmpy.creationfunctions import create_lb_method -from lbmpy.moments import discrete_moment, exponents_to_polynomial_representations, \ - exponent_to_polynomial_representation -from lbmpy.stencils import get_stencil from lbmpy.cumulants import * +from lbmpy.moments import ( + discrete_moment, exponent_to_polynomial_representation, exponents_to_polynomial_representations) +from lbmpy.stencils import get_stencil def test_cumulants_from_pdfs(): diff --git a/lbmpy_tests/test_entropic.py b/lbmpy_tests/test_entropic.py index b08b49af129d93edf449ecbc9d25a8a77e2f2398..284570c1d4c874f8d11737a70346ade24ce94eba 100644 --- a/lbmpy_tests/test_entropic.py +++ b/lbmpy_tests/test_entropic.py @@ -1,5 +1,6 @@ import numpy as np import sympy as sp + from lbmpy.forcemodels import Guo from lbmpy.methods.entropic_eq_srt import create_srt_entropic from lbmpy.scenarios import create_lid_driven_cavity diff --git a/lbmpy_tests/test_float_kernel.py b/lbmpy_tests/test_float_kernel.py index 0099f7876442c64e9e7defc71c1b48621fe998a0..ce8839c42648466c5c7ee1b5d1b53242dbdaa428 100644 --- a/lbmpy_tests/test_float_kernel.py +++ b/lbmpy_tests/test_float_kernel.py @@ -1,6 +1,6 @@ -from pystencils import show_code -from lbmpy.scenarios import create_lid_driven_cavity from lbmpy.creationfunctions import create_lb_function +from lbmpy.scenarios import create_lid_driven_cavity +from pystencils import show_code def test_creation(): diff --git a/lbmpy_tests/test_force_on_boundary.py b/lbmpy_tests/test_force_on_boundary.py index 13e9b589a0e186a5ac98bb60814beb902ebac98d..11bb17fffad9fc3bc547071a6f35a327221720db 100644 --- a/lbmpy_tests/test_force_on_boundary.py +++ b/lbmpy_tests/test_force_on_boundary.py @@ -1,7 +1,8 @@ import numpy as np -from pystencils import make_slice -from lbmpy.boundaries import NoSlip, UBB + +from lbmpy.boundaries import UBB, NoSlip from lbmpy.scenarios import create_channel +from pystencils import make_slice try: import waLBerla as wLB diff --git a/lbmpy_tests/test_geometry_setup_serial.py b/lbmpy_tests/test_geometry_setup_serial.py index cafd3a1f27a0b6fbf7642a1d87bde99aba46b240..7c185fd88dc54babc2f0cb9545640737aa6ef08d 100644 --- a/lbmpy_tests/test_geometry_setup_serial.py +++ b/lbmpy_tests/test_geometry_setup_serial.py @@ -1,10 +1,11 @@ -import numpy as np import os +import numpy as np + +from lbmpy.boundaries import NoSlip +from lbmpy.geometry import add_black_and_white_image, add_pipe_walls from lbmpy.lbstep import LatticeBoltzmannStep from pystencils.slicing import make_slice -from lbmpy.geometry import add_pipe_walls, add_black_and_white_image -from lbmpy.boundaries import NoSlip def test_pipe(): diff --git a/lbmpy_tests/test_html_output.py b/lbmpy_tests/test_html_output.py index a5c481a1c34fcf4e0f8f8243f08a46a64209f9ea..d1a7f8df8a89c3e94160f78eea7ee08934a11ede 100644 --- a/lbmpy_tests/test_html_output.py +++ b/lbmpy_tests/test_html_output.py @@ -1,6 +1,7 @@ from lbmpy.creationfunctions import create_lb_method from lbmpy.methods.creationfunctions import compare_moment_based_lb_methods -from lbmpy.moments import moment_equality_table_by_stencil, moment_equality_table, moments_up_to_component_order +from lbmpy.moments import ( + moment_equality_table, moment_equality_table_by_stencil, moments_up_to_component_order) from lbmpy.stencils import get_stencil diff --git a/lbmpy_tests/test_lbstep.py b/lbmpy_tests/test_lbstep.py index 447b8643e963ad38dccf8af5107004c68fb6425e..e4903446cab66c615b4a64030bf23016838fa146 100644 --- a/lbmpy_tests/test_lbstep.py +++ b/lbmpy_tests/test_lbstep.py @@ -1,6 +1,7 @@ -import pytest import numpy as np -from lbmpy.scenarios import create_lid_driven_cavity, create_fully_periodic_flow +import pytest + +from lbmpy.scenarios import create_fully_periodic_flow, create_lid_driven_cavity try: import pycuda.driver diff --git a/lbmpy_tests/test_macroscopic_value_kernels.py b/lbmpy_tests/test_macroscopic_value_kernels.py index c143ee6c8e6c54acdecec8e2ca11fc4ba4ffff59..09a0d66d2df28837a771841e3c3b194f2465e1ae 100644 --- a/lbmpy_tests/test_macroscopic_value_kernels.py +++ b/lbmpy_tests/test_macroscopic_value_kernels.py @@ -1,6 +1,8 @@ import numpy as np + from lbmpy.creationfunctions import create_lb_method -from lbmpy.macroscopic_value_kernels import compile_macroscopic_values_getter, compile_macroscopic_values_setter +from lbmpy.macroscopic_value_kernels import ( + compile_macroscopic_values_getter, compile_macroscopic_values_setter) def test_set_get_density_velocity_with_fields(): @@ -51,4 +53,3 @@ def test_set_get_constant_velocity(): computed_velocity = velocity_output_field[0, 0, 0, :] np.testing.assert_almost_equal(np.array(ref_velocity[:method.dim]), computed_velocity) - diff --git a/lbmpy_tests/test_maxwellian_equilibrium.py b/lbmpy_tests/test_maxwellian_equilibrium.py index 202e37a657e58adcb11da9cdd88df8858fccde74..4410f76dc6eeaa6b7618a7eee10ef35b05c6210f 100644 --- a/lbmpy_tests/test_maxwellian_equilibrium.py +++ b/lbmpy_tests/test_maxwellian_equilibrium.py @@ -1,8 +1,9 @@ +from lbmpy.cumulants import raw_moment_as_function_of_cumulants from lbmpy.maxwellian_equilibrium import * -from lbmpy.moments import MOMENT_SYMBOLS, moments_up_to_order, moments_up_to_component_order, moment_matrix, \ - exponents_to_polynomial_representations +from lbmpy.moments import ( + MOMENT_SYMBOLS, exponents_to_polynomial_representations, moment_matrix, + moments_up_to_component_order, moments_up_to_order) from lbmpy.stencils import get_stencil -from lbmpy.cumulants import raw_moment_as_function_of_cumulants from pystencils.sympyextensions import remove_higher_order_terms diff --git a/lbmpy_tests/test_momentbased_methods_equilibrium.py b/lbmpy_tests/test_momentbased_methods_equilibrium.py index b69f020b68003faf7a05ee1f2f34db67c719f5bf..843685bc96bd443e5e086af5c0e9f66198602e87 100644 --- a/lbmpy_tests/test_momentbased_methods_equilibrium.py +++ b/lbmpy_tests/test_momentbased_methods_equilibrium.py @@ -4,11 +4,12 @@ This test checks if the equilibrium formula obtained by this method is the same given discrete_maxwellian_equilibrium """ import sympy as sp -from lbmpy.methods import create_srt, create_trt, create_mrt_orthogonal + +from lbmpy.creationfunctions import create_lb_method from lbmpy.maxwellian_equilibrium import discrete_maxwellian_equilibrium +from lbmpy.methods import create_mrt_orthogonal, create_srt, create_trt from lbmpy.relaxationrates import get_shear_relaxation_rate from lbmpy.stencils import get_stencil -from lbmpy.creationfunctions import create_lb_method def check_for_matching_equilibrium(method_name, stencil, compressibility): diff --git a/lbmpy_tests/test_moments.py b/lbmpy_tests/test_moments.py index 8e0b1c0a6d9fd4ff6c1661b7f9380fe9cc87c1de..79d96ef44ec79fde623be7c69b16803e966f8bcd 100644 --- a/lbmpy_tests/test_moments.py +++ b/lbmpy_tests/test_moments.py @@ -1,5 +1,5 @@ -from lbmpy.stencils import get_stencil from lbmpy.moments import * +from lbmpy.stencils import get_stencil def test_moment_permutation_multiplicity(): diff --git a/lbmpy_tests/test_phase_field_scenarios.py b/lbmpy_tests/test_phase_field_scenarios.py index d20f29752e7bc14983427055b87d847562e458e9..44e61d7ccdd83c15dd26f121f1e8277b28dc6168 100644 --- a/lbmpy_tests/test_phase_field_scenarios.py +++ b/lbmpy_tests/test_phase_field_scenarios.py @@ -1,14 +1,17 @@ import os import warnings from tempfile import TemporaryDirectory + import numpy as np import sympy as sp -from lbmpy.phasefield.phasefieldstep import PhaseFieldStep + +from lbmpy.boundaries import NoSlip from lbmpy.phasefield.analytical import free_energy_functional_n_phases_penalty_term +from lbmpy.phasefield.experiments2D import ( + create_two_drops_between_phases, write_phase_field_picture_sequence, + write_phase_velocity_picture_sequence) +from lbmpy.phasefield.phasefieldstep import PhaseFieldStep from pystencils import make_slice -from lbmpy.boundaries import NoSlip -from lbmpy.phasefield.experiments2D import create_two_drops_between_phases, write_phase_field_picture_sequence, \ - write_phase_velocity_picture_sequence def create_falling_drop(domain_size=(160, 200), omega=1.9, kappas=(0.001, 0.001, 0.0005), **kwargs): diff --git a/lbmpy_tests/test_phasefield.py b/lbmpy_tests/test_phasefield.py index d7377abdce945771580cc0108a049d5b93ea8851..447c58b42e75335aa6f4ad51b2f2b2a4ea2fc657 100644 --- a/lbmpy_tests/test_phasefield.py +++ b/lbmpy_tests/test_phasefield.py @@ -1,10 +1,11 @@ import sympy as sp +from lbmpy.phasefield.analytical import ( + analytic_interface_profile, chemical_potentials_from_free_energy, cosh_integral, + force_from_phi_and_mu, force_from_pressure_tensor, free_energy_functional_n_phases, + pressure_tensor_from_free_energy, substitute_laplacian_by_sum, symbolic_order_parameters, + symmetric_symbolic_surface_tension) from pystencils.fd import evaluate_diffs, expand_diff_full -from lbmpy.phasefield.analytical import free_energy_functional_n_phases, symbolic_order_parameters, \ - analytic_interface_profile, symmetric_symbolic_surface_tension, chemical_potentials_from_free_energy, \ - cosh_integral, pressure_tensor_from_free_energy, force_from_pressure_tensor, force_from_phi_and_mu, \ - substitute_laplacian_by_sum def test_analytic_interface_solution(): diff --git a/lbmpy_tests/test_phasefield_scenarios.py b/lbmpy_tests/test_phasefield_scenarios.py index a45d8e7e0baf68dd7281e05e6d1ebad0d121159c..001b535e56b2de37cbfc8e2b240503a0d454b644 100644 --- a/lbmpy_tests/test_phasefield_scenarios.py +++ b/lbmpy_tests/test_phasefield_scenarios.py @@ -1,5 +1,5 @@ -from pystencils import make_slice from lbmpy.phasefield.scenarios import * +from pystencils import make_slice def test_setup(): diff --git a/lbmpy_tests/test_plot.py b/lbmpy_tests/test_plot.py index dd241af3726f00679b3bf441efb0047af9b4b0eb..2c5e138611041fe621b56e25c36278978ae34014 100644 --- a/lbmpy_tests/test_plot.py +++ b/lbmpy_tests/test_plot.py @@ -1,8 +1,10 @@ import os -import numpy as np from tempfile import TemporaryDirectory -from lbmpy.scenarios import create_lid_driven_cavity + +import numpy as np + import lbmpy.plot as plt +from lbmpy.scenarios import create_lid_driven_cavity def test_animation(): diff --git a/lbmpy_tests/test_postprocessing.py b/lbmpy_tests/test_postprocessing.py index 52608237186af7ba09be5bddf93da58a3c33d12d..a72cd3518a97b72f7246ef7b997f738298e21c1c 100644 --- a/lbmpy_tests/test_postprocessing.py +++ b/lbmpy_tests/test_postprocessing.py @@ -1,4 +1,5 @@ import numpy as np + from lbmpy.postprocessing import scalar_field_interpolator, vector_field_interpolator diff --git a/lbmpy_tests/test_relaxation_rate.py b/lbmpy_tests/test_relaxation_rate.py index 25fbe4208b9c31733d33730388b38e16c7fa43ba..1d8fb6a08c686c8164f43396240dc496e8a03334 100644 --- a/lbmpy_tests/test_relaxation_rate.py +++ b/lbmpy_tests/test_relaxation_rate.py @@ -1,4 +1,5 @@ import pytest + from lbmpy.creationfunctions import create_lb_method from lbmpy.relaxationrates import get_shear_relaxation_rate diff --git a/lbmpy_tests/test_scaling_widget.py b/lbmpy_tests/test_scaling_widget.py index ee79981a0ec9e6907457afd1ce340167d44758cb..8acc273748f04d7205ab85e61ab38e153d558a3e 100644 --- a/lbmpy_tests/test_scaling_widget.py +++ b/lbmpy_tests/test_scaling_widget.py @@ -1,4 +1,4 @@ -from lbmpy.parameterization import ScalingWidget, Scaling +from lbmpy.parameterization import Scaling, ScalingWidget def test_scaling_widget(): diff --git a/lbmpy_tests/test_serial_scenarios.py b/lbmpy_tests/test_serial_scenarios.py index 6f2bf9561d47481f9e5a7d54ba2f4ab111e86c6b..ac05a0c2b8fd6ad8aab18ada656c18193df2731b 100644 --- a/lbmpy_tests/test_serial_scenarios.py +++ b/lbmpy_tests/test_serial_scenarios.py @@ -1,8 +1,10 @@ import os +from types import MappingProxyType + import numpy as np + from lbmpy.scenarios import create_lid_driven_cavity as run_ldc_lbmpy from pystencils import make_slice -from types import MappingProxyType def create_force_driven_channel(force=1e-6, domain_size=None, dim=2, radius=None, length=None, diff --git a/lbmpy_tests/test_simple_equilibrium_conservation.py b/lbmpy_tests/test_simple_equilibrium_conservation.py index 3adb861fad4cc62a95ba242cd1c5d674906ecd63..5cba7a36ad3401d790fd5494242eaaba0b10e7dd 100644 --- a/lbmpy_tests/test_simple_equilibrium_conservation.py +++ b/lbmpy_tests/test_simple_equilibrium_conservation.py @@ -1,4 +1,5 @@ import numpy as np + from lbmpy.creationfunctions import create_lb_function diff --git a/lbmpy_tests/test_split_optimization.py b/lbmpy_tests/test_split_optimization.py index 76342617ed941b2fee819c39b063aeb292860338..5528cae07c1477519cfbc5b53deb7cfa55234302 100644 --- a/lbmpy_tests/test_split_optimization.py +++ b/lbmpy_tests/test_split_optimization.py @@ -1,8 +1,9 @@ -import pytest import numpy as np -from pystencils.sympyextensions import count_operations_in_ast +import pytest + from lbmpy.creationfunctions import create_lb_ast from lbmpy.scenarios import create_lid_driven_cavity +from pystencils.sympyextensions import count_operations_in_ast def test_split_number_of_operations(): diff --git a/lbmpy_tests/test_srt_trt_simplifications.py b/lbmpy_tests/test_srt_trt_simplifications.py index a95247de0250722f297c05ffa4fba5119ae7cb3b..0ab3068619ef09f87b189ab94bb9df3e5dc2053e 100644 --- a/lbmpy_tests/test_srt_trt_simplifications.py +++ b/lbmpy_tests/test_srt_trt_simplifications.py @@ -5,8 +5,8 @@ known acceptable values. import sympy as sp from lbmpy.forcemodels import Guo -from lbmpy.simplificationfactory import create_simplification_strategy from lbmpy.methods import create_srt, create_trt, create_trt_with_magic_number +from lbmpy.simplificationfactory import create_simplification_strategy from lbmpy.stencils import get_stencil diff --git a/lbmpy_tests/test_stencils.py b/lbmpy_tests/test_stencils.py index 4449c094a8bb547f3e9cf1f48a627dfb03feacd9..253c321bed02851d6191442fed7afced6a6efe7c 100644 --- a/lbmpy_tests/test_stencils.py +++ b/lbmpy_tests/test_stencils.py @@ -1,9 +1,11 @@ -import pytest import itertools import warnings + +import pytest import sympy as sp -import pystencils as ps + import lbmpy.stencils as s +import pystencils as ps from lbmpy.stencils import get_stencil diff --git a/lbmpy_tests/test_vectorization.py b/lbmpy_tests/test_vectorization.py index ce92f54ff59abccd0d3106bada92e2c5f9e2882a..6d34bb1dbe2efb3d8b01c8e657c8b4dbbe912505 100644 --- a/lbmpy_tests/test_vectorization.py +++ b/lbmpy_tests/test_vectorization.py @@ -1,5 +1,6 @@ -import pytest import numpy as np +import pytest + from lbmpy.scenarios import create_lid_driven_cavity diff --git a/lbmpy_tests/walberla_scenario_setup.py b/lbmpy_tests/walberla_scenario_setup.py index a9624b25db8eefde15bf3d3e88e3ff5b905584d6..233ac449587c16777a45abdeffde063b77964246 100644 --- a/lbmpy_tests/walberla_scenario_setup.py +++ b/lbmpy_tests/walberla_scenario_setup.py @@ -1,5 +1,5 @@ import waLBerla.field as field -from waLBerla import makeSlice, createUniformBufferedScheme, createUniformBlockGrid +from waLBerla import createUniformBlockGrid, createUniformBufferedScheme, makeSlice def create_walberla_lattice_model(stencil, method, relaxation_rates, compressible=False, order=2,