This package contains FluxLimiterSolver block that offers linear and high resolution methods for solving linear constant-coefficient hyperbolic system of equations.
Release Notes:
| Name | Description |
|---|---|
PDE.FiniteVolume.FluxLimiter.FluxLimiterSolver.FluxLimiterSolver
The Flux Limiter Solver contains all the linear and high resolution methods which can be selected through the parameter variable method
method = 1: Upwind
method = 2: Lax-Wendroff
method = 3: Beam Warming
method = 4: Fromm
method = 5: van Leer
Release Notes:
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | method | worldModel1.fls | |
| Integer | p | 1 |
| Type | Name | Description |
|---|---|---|
| input RealInput | u[worldModel1.m, worldModel1.n + 1] | |
| output RealOutput | y[worldModel1.m, worldModel1.n + 1] |
block FluxLimiterSolver
extends Icons.BlockIcon;
outer PDE.World.worldModel worldModel1;
parameter Integer method = worldModel1.fls;
inner parameter Integer p = 1;
Modelica.Blocks.Interfaces.RealInput u[worldModel1.m,worldModel1.n + 1];
Modelica.Blocks.Interfaces.RealOutput y[worldModel1.m,worldModel1.n + 1];
LinearMethods.Upwind upwind if method == 1;
LinearMethods.LaxWendroff laxWendroff if method == 2;
LinearMethods.BeamWarming beamWarming if method == 3;
LinearMethods.Fromm fromm if method == 4;
PDE.FiniteVolume.FluxLimiter.HighResolutionMethods.vanLeer vanLeerNew if
method == 5;
equation
connect(u, upwind.u);
connect(u, laxWendroff.u);
connect(u, beamWarming.u);
connect(u, fromm.u);
connect(u, vanLeerNew.u);
connect(upwind.y, y);
connect(laxWendroff.y, y);
connect(beamWarming.y, y);
connect(fromm.y, y);
connect(vanLeerNew.y, y);
end FluxLimiterSolver;