This package contains FluxDiff block that computes the waves W+ and W-.
Release Notes:
| Name | Description |
|---|---|
PDE.FiniteVolume.Fluxes.Roe.FluxDifference.FluxDiff
Computes the waves
and
according to the eigenvalue lambda.
Release Notes:
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | n | worldModel1.n | |
| Integer | m | worldModel1.m |
| Type | Name | Description |
|---|---|---|
| input RealInput | u[worldModel1.n + 1] | |
| input RealInput | u1[worldModel1.m, worldModel1.n + 1] | |
| input RealInput | u2[worldModel1.n + 1] | |
| output RealOutput | y[worldModel1.m, worldModel1.n + 1] | |
| output RealOutput | y1[worldModel1.m, worldModel1.n + 1] |
block FluxDiff
extends Icons.BlockIcon;
outer PDE.World.worldModel worldModel1;
parameter Integer n=worldModel1.n;
parameter Integer m=worldModel1.m;
equation
for j in 1:n+1 loop
if u2[j] > 0 then
for i in 1:m loop
y[i, j] = u[j]*u1[i, j];
y1[i, j] = 0.0;
end for;
else
for i in 1:m loop
y1[i, j] = u[j]*u1[i, j];
y[i, j] = 0.0;
end for;
end if;
end for;
// for j in 1:n+1 loop
// for i in 1:m loop
// if u2[j] > 0 then
// y[i, j] = u[j]*u1[i, j];
// y1[i, j] = 0.0;
// else
// y1[i, j] = u[j]*u1[i, j];
// y[i, j] = 0.0;
// end if;
// end for;
// end for;
public
Modelica.Blocks.Interfaces.RealInput u[worldModel1.n + 1];
Modelica.Blocks.Interfaces.RealInput u1[worldModel1.m,worldModel1.n
+ 1];
Modelica.Blocks.Interfaces.RealInput u2[worldModel1.n + 1];
Modelica.Blocks.Interfaces.RealOutput y[worldModel1.m,worldModel1.n
+ 1];
Modelica.Blocks.Interfaces.RealOutput y1[worldModel1.m,worldModel1.n
+ 1];
end FluxDiff;