Skip to content
Snippets Groups Projects
Commit 76c59f41 authored by Christoph Rettinger's avatar Christoph Rettinger
Browse files

Adapted parts using codegen via lbmpy to new lbmpy version

parent ff1a3a46
No related merge requests found
import sympy as sp import sympy as sp
import pystencils as ps import pystencils as ps
from lbmpy.creationfunctions import create_lb_method_from_existing, create_lb_ast, create_lb_method from lbmpy.creationfunctions import create_lb_method_from_existing, create_lb_method
from lbmpy_walberla import generate_lattice_model from lbmpy_walberla import generate_lattice_model
from pystencils_walberla import CodeGeneration from pystencils_walberla import CodeGeneration
from lbmpy.creationfunctions import create_lb_collision_rule from lbmpy.creationfunctions import create_lb_collision_rule
from lbmpy.moments import MOMENT_SYMBOLS, is_even, get_order from lbmpy.moments import is_even, get_order
from lbmpy.stencils import get_stencil from lbmpy.stencils import get_stencil
from lbmpy.forcemodels import * from lbmpy.methods import mrt_orthogonal_modes_literature
with CodeGeneration() as ctx: with CodeGeneration() as ctx:
stencil = get_stencil("D3Q19", 'walberla') stencil = get_stencil("D3Q19", 'walberla')
omega = sp.symbols("omega_:%d" % len(stencil)) omega = sp.symbols("omega_:%d" % len(stencil))
method = create_lb_method(stencil=stencil, method='mrt', maxwellian_moments=False) moments = mrt_orthogonal_modes_literature(stencil, True, False)
method = create_lb_method(stencil=stencil, method='mrt', maxwellian_moments=False, nested_moments=moments)
def modification_func(moment, eq, rate): def modification_func(moment, eq, rate):
omegaVisc = sp.Symbol("omega_visc") omegaVisc = sp.Symbol("omega_visc")
omegaBulk = ps.fields("omega_bulk: [3D]", layout='fzyx')# sp.Symbol("omega_bulk") omegaBulk = ps.fields("omega_bulk: [3D]", layout='fzyx')
omegaMagic = sp.Symbol("omega_magic") omegaMagic = sp.Symbol("omega_magic")
if get_order(moment) <= 1: if get_order(moment) <= 1:
return moment, eq, 0 return moment, eq, 0
......
import sympy as sp import sympy as sp
import pystencils as ps import pystencils as ps
from lbmpy.creationfunctions import create_lb_method_from_existing, create_lb_ast, create_lb_method from lbmpy.creationfunctions import create_lb_method_from_existing, create_lb_method
from lbmpy_walberla import generate_lattice_model from lbmpy_walberla import generate_lattice_model
from pystencils_walberla import CodeGeneration from pystencils_walberla import CodeGeneration
from lbmpy.creationfunctions import create_lb_collision_rule from lbmpy.creationfunctions import create_lb_collision_rule
from lbmpy.moments import MOMENT_SYMBOLS, is_even, get_order from lbmpy.moments import is_even, get_order
from lbmpy.stencils import get_stencil from lbmpy.stencils import get_stencil
from lbmpy.forcemodels import * from lbmpy.forcemodels import Luo
from lbmpy.methods import mrt_orthogonal_modes_literature
with CodeGeneration() as ctx: with CodeGeneration() as ctx:
...@@ -18,7 +18,9 @@ with CodeGeneration() as ctx: ...@@ -18,7 +18,9 @@ with CodeGeneration() as ctx:
stencil = get_stencil("D3Q19", 'walberla') stencil = get_stencil("D3Q19", 'walberla')
omega = sp.symbols("omega_:%d" % len(stencil)) omega = sp.symbols("omega_:%d" % len(stencil))
methodWithForce = create_lb_method(stencil=stencil, method='mrt', maxwellian_moments=False,force_model=forcemodel) moments = mrt_orthogonal_modes_literature(stencil, True, False)
methodWithForce = create_lb_method(stencil=stencil, method='mrt', maxwellian_moments=False,
force_model=forcemodel, nested_moments=moments)
def modification_func(moment, eq, rate): def modification_func(moment, eq, rate):
omegaVisc = sp.Symbol("omega_visc") omegaVisc = sp.Symbol("omega_visc")
......
...@@ -70,7 +70,7 @@ int main( int argc, char ** argv ) ...@@ -70,7 +70,7 @@ int main( int argc, char ** argv )
// create fields // create fields
BlockDataID forceFieldId = field::addToStorage<VectorField_T>( blocks, "Force", real_t( 0.0 )); BlockDataID forceFieldId = field::addToStorage<VectorField_T>( blocks, "Force", real_t( 0.0 ));
LatticeModel_T latticeModel = LatticeModel_T( forceFieldId, omega, omega, seed, temperature, uint_t(0) ); LatticeModel_T latticeModel = LatticeModel_T( forceFieldId, omega, seed, temperature, uint_t(0) );
BlockDataID pdfFieldId = lbm::addPdfFieldToStorage( blocks, "pdf field", latticeModel, initialVelocity, real_t(1) ); BlockDataID pdfFieldId = lbm::addPdfFieldToStorage( blocks, "pdf field", latticeModel, initialVelocity, real_t(1) );
BlockDataID flagFieldId = field::addFlagFieldToStorage< FlagField_T >( blocks, "flag field" ); BlockDataID flagFieldId = field::addFlagFieldToStorage< FlagField_T >( blocks, "flag field" );
......
...@@ -5,7 +5,7 @@ from pystencils_walberla import CodeGeneration ...@@ -5,7 +5,7 @@ from pystencils_walberla import CodeGeneration
from lbmpy_walberla import generate_lattice_model from lbmpy_walberla import generate_lattice_model
with CodeGeneration() as ctx: with CodeGeneration() as ctx:
omega_shear, omega_bulk = sp.symbols("omega_shear, omega_bulk") omega_shear = sp.symbols("omega_shear")
temperature = sp.symbols("temperature") temperature = sp.symbols("temperature")
force_field, vel_field = ps.fields("force(3), velocity(3): [3D]", layout='fzyx') force_field, vel_field = ps.fields("force(3), velocity(3): [3D]", layout='fzyx')
...@@ -14,7 +14,7 @@ with CodeGeneration() as ctx: ...@@ -14,7 +14,7 @@ with CodeGeneration() as ctx:
'temperature' : temperature, 'temperature' : temperature,
'block_offsets' : 'walberla', 'block_offsets' : 'walberla',
}, },
method='mrt3', relaxation_rates=[omega_shear, omega_bulk], method='mrt', relaxation_rates=[omega_shear]*19,
force_model='guo', force=force_field.center_vector, force_model='guo', force=force_field.center_vector,
optimization={'cse_global': True} optimization={'cse_global': True}
) )
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment