diff --git a/dune/fem-dg/solver/dg.hh b/dune/fem-dg/solver/dg.hh index 5f151ab65239492ae962b83719cbec926c2f753c..5ea145fd14fbb95b0f4698a66e3df3f1083cd001 100644 --- a/dune/fem-dg/solver/dg.hh +++ b/dune/fem-dg/solver/dg.hh @@ -56,7 +56,7 @@ namespace Fem typedef typename DiscreteFunctionSpaceType :: GridPartType GridPartType; typedef typename GridPartType::GridType GridType; - typedef typename GridType :: CollectiveCommunicationType CollectiveCommunicationType; + typedef typename GridType :: CollectiveCommunication CollectiveCommunicationType; typedef TimeProvider< CollectiveCommunicationType > TimeProviderType; typedef ModelWrapper< GridType, AdvectionModel, Additional > ModelType; diff --git a/pydemo/euler/euler.py b/pydemo/euler/euler.py index 333932d5d25fe82d479e838b26219a2f754fef56..f106bddc1da74bb813c85d74f9a2ab10d76899ff 100644 --- a/pydemo/euler/euler.py +++ b/pydemo/euler/euler.py @@ -7,3 +7,5 @@ def RiemanProblem(UL,UR): def Sod(): return RiemanProblem( Model.toCons([1,0,0,1]), Model.toCons([0.125,0,0,0.1]) ) +def Constant(): + return as_vector( [0.1,0.,0.,0.1] ) diff --git a/pydemo/euler/parameter b/pydemo/euler/parameter index b5019cedc020a1cd71becbcc844d0bcf2c7771b2..5c978a66007ef74483bec09d2cc87b6b49b35bfe 100644 --- a/pydemo/euler/parameter +++ b/pydemo/euler/parameter @@ -1,80 +1,21 @@ -# PROBLEM SELECTION -#------------------ -# possible: "sod" , "withman", "withmansmooth", "smooth1d" , "ffs" , "diffraction" , "shockbubble" -problem: sod -# problemflag: 0 -# riemanndata: [1., -1., 1., 1., 1., 1.] - # LIMITER SETTINGS #----------------- # 0 = only dg solution | 1 = only reconstruction | 2 = both -femdg.limiter.admissiblefunctions: 1 -# tolerance for shock indicator +femdg.limiter.admissiblefunctions: 0 +# tolerance for shock indicator femdg.limiter.tolerance: 1 -# threshold for avoiding over-excessive limitation +# threshold for avoiding over-excessive limitation femdg.limiter.limiteps: 1e-8 -# add indicator to outputvariables -femdg.limiter.indicatoroutput: true - -# DATA WRITER -#------------ -fem.io.datafileprefix: RC -fem.io.savestep: 0.01 # SaveStep (write data every `saveStep' time period, <=0 deactivates) -fem.io.savecount: -1 # SaveCount (write data every saveCount time steps, <=0 deactivates) - - -# GRID SOLUTION -#-------------- -gridsol.savestep: 0.5 -gridsol.firstwrite: 0.5 -gridsol.filename: straka-checkpoint - # GENERAL #-------- -paramfile: ../../parameter/paramBase - - -# STEPPER -#-------- -fem.eoc.steps: 4 -femdg.stepper.starttime: 0. -femdg.stepper.endtime: 0.15 -femdg.stepper.maxtimestep: 0.1 - +paramfile: paramBase -# PROBLEM SETUP -#-------------- -paramfile: ../../parameter/paramPhysicalConstants # choises are: LLF, HLL, HLLC, LLF2 dgadvectionflux.method: LLF -g: 1. # gravity force [m/ss] -hSpeed0: 1. # x-axis speed [m/s] -vSpeed0: 1.25 # z-axis speed [m/s] -p0: 1. # surface pressure [Pa] -N: 0.01 # Brunt-Vaisala frequency -Re: 1. # Reynold's number -Pr: 1. # Prandtl's number -rho_a: 1. -rho_b: 0.05 - -delta_T: -15 # temperature perturbation peak [K] -x_c: 0.25 # x-center of perturbation ball -y_c: 0.25 # y-center of perturbation ball -z_c: 0.25 # z-center of perturbation ball -r: 0.25 # radius of perturbation ball - - -# DOMAIN SETUP -#------------- -fem.io.macroGridFile_1d: ../../grids/unitcube1.dgf -fem.io.macroGridFile_2d: ../../grids/grid2d_str1d.dgf -fem.io.macroGridFile_3d: ../../grids/unitcube3.dgf - - # SOLVER CONFIGURATION #--------------------- fem.ode.odesolver: EX -paramfile: ../../parameter/paramSolver +paramfile: paramSolver diff --git a/pydemo/euler/shock_tube.py b/pydemo/euler/shock_tube.py index 35b39917f577ba715a248fb03f61b34c29f23023..1592282202fa039285aa8ded7c43250a2baf81bc 100644 --- a/pydemo/euler/shock_tube.py +++ b/pydemo/euler/shock_tube.py @@ -1,5 +1,5 @@ import time -from dune.grid import structuredGrid +from dune.grid import structuredGrid, cartesianDomain from dune.fem import parameter import dune.create as create from dune.models.elliptic.formfiles import loadModels @@ -7,12 +7,15 @@ from llf import NumFlux from dune.femdg import createFemDGSolver from ufl import * -from euler import Model,Sod +from euler import Model +from euler import Sod as Initial parameter.append("parameter") parameter.append({"fem.verboserank": -1}) -grid = structuredGrid([-1, 0], [1, 0.1], [20, 5]) +x0,x1,N = [-1, 0], [1, 0.1], [20, 5] +grid = structuredGrid(x0,x1,N) +# grid = create.grid("ALUSimplex", cartesianDomain(x0,x1,N)) dimR = 4 t = 0 dt = 1e-5 @@ -31,7 +34,7 @@ def useGalerkinOp(): n = FacetNormal(space.cell()) - u_h = space.interpolate(Sod(), name='u_h') + u_h = space.interpolate(Initial(), name='u_h') u_h_n = u_h.copy(name="previous") fullModel = inner( Model.F_c(u), grad(v) ) * dx -\ @@ -61,10 +64,10 @@ def useODESolver(): spaceName = "dgonb" polOrder = 2 space = create.space(spaceName, grid, order=polOrder, dimrange=dimR) - u_h = space.interpolate(Sod(), name='u_h') + u_h = space.interpolate(Initial(), name='u_h') u_h_n = u_h.copy(name="previous") operator = createFemDGSolver( Model, space ) - operator.setTimeStepSize(dt) + # operator.setTimeStepSize(dt) start = time.time() grid.writeVTK('sod', pointdata=[u_h], number=count)