Skip to content
Snippets Groups Projects
Select Git revision
  • 750d4554eb90be001a388823f35cf63850ad77dd
  • master default protected
  • v2.0-dev protected
  • zikeliml/Task-96-dotExporterForAST
  • zikeliml/124-rework-tutorials
  • fma
  • fhennig/v2.0-deprecations
  • holzer-master-patch-46757
  • 66-absolute-access-is-probably-not-copied-correctly-after-_eval_subs
  • gpu_bufferfield_fix
  • hyteg
  • vectorization_sqrt_fix
  • target_dh_refactoring
  • const_fix
  • improved_comm
  • gpu_liveness_opts
  • release/1.3.7 protected
  • release/1.3.6 protected
  • release/2.0.dev0 protected
  • release/1.3.5 protected
  • release/1.3.4 protected
  • release/1.3.3 protected
  • release/1.3.2 protected
  • release/1.3.1 protected
  • release/1.3 protected
  • release/1.2 protected
  • release/1.1.1 protected
  • release/1.1 protected
  • release/1.0.1 protected
  • release/1.0 protected
  • release/0.4.4 protected
  • last/Kerncraft
  • last/OpenCL
  • last/LLVM
  • release/0.4.3 protected
  • release/0.4.2 protected
36 results

release.sh

Blame
  • test_json_serializer.py 1.71 KiB
    """
    Test the lbmpy-specific JSON encoder and serializer as used in the Database class.
    """
    
    import tempfile
    import pystencils as ps
    
    from lbmpy import Stencil, Method, ForceModel, SubgridScaleModel
    from lbmpy.advanced_streaming import Timestep
    from lbmpy.creationfunctions import LBMConfig, LBMOptimisation, LBStencil
    from lbmpy.fieldaccess import StreamPullTwoFieldsAccessor
    
    from pystencils.runhelper import Database
    from lbmpy.db import LbmpyJsonSerializer
    
    
    def test_json_serializer():
    
        stencil = LBStencil(Stencil.D3Q27)
        q = stencil.Q
        pdfs, pdfs_tmp = ps.fields(f"pdfs({q}), pdfs_tmp({q}): double[3D]", layout='fzyx')
        density = ps.fields(f"rho: double[3D]", layout='fzyx')
    
        from lbmpy.non_newtonian_models import CassonsParameters
        cassons_params = CassonsParameters(0.2)
    
        # create dummy lbmpy config
        lbm_config = LBMConfig(stencil=LBStencil(Stencil.D3Q27), method=Method.CUMULANT, force_model=ForceModel.GUO,
                               compressible=True, relaxation_rate=1.999, subgrid_scale_model=SubgridScaleModel.SMAGORINSKY,
                               galilean_correction=True, cassons=cassons_params, density_input=density,
                               kernel_type=StreamPullTwoFieldsAccessor, timestep=Timestep.BOTH)
    
        lbm_optimization = LBMOptimisation(cse_pdfs=False, cse_global=False, builtin_periodicity=(True, False, False),
                                           symbolic_field=pdfs, symbolic_temporary_field=pdfs_tmp)
    
        # create dummy database
        temp_dir = tempfile.TemporaryDirectory()
        db = Database(file=temp_dir.name, serializer_info=('lbmpy_serializer', LbmpyJsonSerializer))
    
        db.save(params={'lbm_config': lbm_config, 'lbm_optimization': lbm_optimization}, result={'test': 'dummy'})