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
Branches
No related merge requests found
import sympy as sp
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 pystencils_walberla import CodeGeneration
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.forcemodels import *
from lbmpy.methods import mrt_orthogonal_modes_literature
with CodeGeneration() as ctx:
stencil = get_stencil("D3Q19", 'walberla')
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):
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")
if get_order(moment) <= 1:
return moment, eq, 0
......
import sympy as sp
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 pystencils_walberla import CodeGeneration
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.forcemodels import *
from lbmpy.forcemodels import Luo
from lbmpy.methods import mrt_orthogonal_modes_literature
with CodeGeneration() as ctx:
......@@ -18,7 +18,9 @@ with CodeGeneration() as ctx:
stencil = get_stencil("D3Q19", 'walberla')
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):
omegaVisc = sp.Symbol("omega_visc")
......
......@@ -70,7 +70,7 @@ int main( int argc, char ** argv )
// create fields
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 flagFieldId = field::addFlagFieldToStorage< FlagField_T >( blocks, "flag field" );
......
......@@ -5,7 +5,7 @@ from pystencils_walberla import CodeGeneration
from lbmpy_walberla import generate_lattice_model
with CodeGeneration() as ctx:
omega_shear, omega_bulk = sp.symbols("omega_shear, omega_bulk")
omega_shear = sp.symbols("omega_shear")
temperature = sp.symbols("temperature")
force_field, vel_field = ps.fields("force(3), velocity(3): [3D]", layout='fzyx')
......@@ -14,7 +14,7 @@ with CodeGeneration() as ctx:
'temperature' : temperature,
'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,
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