WIP: Pull Request for a complete Solver package #1
72
BasicSolver/2D-seq/backstep.par
Normal file
72
BasicSolver/2D-seq/backstep.par
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
#==============================================================================
|
||||||
|
# Laminar Canal Flow
|
||||||
|
#==============================================================================
|
||||||
|
|
||||||
|
# Problem specific Data:
|
||||||
|
# ---------------------
|
||||||
|
|
||||||
|
name backstep # name of flow setup
|
||||||
|
|
||||||
|
bcTop 1 # flags for boundary conditions
|
||||||
|
bcBottom 1 # 1 = no-slip 3 = outflow
|
||||||
|
bcLeft 3 # 2 = free-slip 4 = periodic
|
||||||
|
bcRight 3 #
|
||||||
|
|
||||||
|
gx 0.0 # Body forces (e.g. gravity)
|
||||||
|
gy 0.0 #
|
||||||
|
|
||||||
|
re 30000.0 # Reynolds number
|
||||||
|
|
||||||
|
u_init 1.0 # initial value for velocity in x-direction
|
||||||
|
v_init 0.0 # initial value for velocity in y-direction
|
||||||
|
p_init 0.0 # initial value for pressure
|
||||||
|
|
||||||
|
# Geometry Data:
|
||||||
|
# -------------
|
||||||
|
|
||||||
|
xlength 30.0 # domain size in x-direction
|
||||||
|
ylength 4.0 # domain size in y-direction
|
||||||
|
imax 200 # number of interior cells in x-direction
|
||||||
|
jmax 50 # number of interior cells in y-direction
|
||||||
|
|
||||||
|
# Time Data:
|
||||||
|
# ---------
|
||||||
|
|
||||||
|
te 100.0 # final time
|
||||||
|
dt 0.02 # time stepsize
|
||||||
|
tau 0.5 # safety factor for time stepsize control (<0 constant delt)
|
||||||
|
|
||||||
|
# Pressure Iteration Data:
|
||||||
|
# -----------------------
|
||||||
|
|
||||||
|
itermax 500 # maximal number of pressure iteration in one time step
|
||||||
|
eps 0.0001 # stopping tolerance for pressure iteration
|
||||||
|
rho 0.52
|
||||||
|
omg 1.8 # relaxation parameter for SOR iteration
|
||||||
|
gamma 0.9 # upwind differencing factor gamma
|
||||||
|
|
||||||
|
# Particle Tracing Data:
|
||||||
|
# -----------------------
|
||||||
|
|
||||||
|
numberOfParticles 60
|
||||||
|
startTime 0
|
||||||
|
injectTimePeriod 2.0
|
||||||
|
writeTimePeriod 0.5
|
||||||
|
|
||||||
|
x1 1.0
|
||||||
|
y1 0.0
|
||||||
|
x2 1.0
|
||||||
|
y2 4.0
|
||||||
|
|
||||||
|
# Obstacle Geometry Data:
|
||||||
|
# -----------------------
|
||||||
|
# Shape 0 disable, 1 Rectangle/Square, 2 Circle
|
||||||
|
|
||||||
|
shape 1
|
||||||
|
xCenter 0.0
|
||||||
|
yCenter 0.0
|
||||||
|
xRectLength 8.0
|
||||||
|
yRectLength 1.0
|
||||||
|
circleRadius 1.0
|
||||||
|
|
||||||
|
#===============================================================================
|
@ -32,7 +32,7 @@ jmax 50 # number of interior cells in y-direction
|
|||||||
# Time Data:
|
# Time Data:
|
||||||
# ---------
|
# ---------
|
||||||
|
|
||||||
te 700.0 # final time
|
te 100.0 # final time
|
||||||
dt 0.02 # time stepsize
|
dt 0.02 # time stepsize
|
||||||
tau 0.5 # safety factor for time stepsize control (<0 constant delt)
|
tau 0.5 # safety factor for time stepsize control (<0 constant delt)
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ y2 4.0
|
|||||||
# -----------------------
|
# -----------------------
|
||||||
# Shape 0 disable, 1 Rectangle/Square, 2 Circle
|
# Shape 0 disable, 1 Rectangle/Square, 2 Circle
|
||||||
|
|
||||||
shape 1
|
shape 0
|
||||||
xCenter 4.0
|
xCenter 4.0
|
||||||
yCenter 1
|
yCenter 1
|
||||||
xRectLength 8.0
|
xRectLength 8.0
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -78,7 +78,7 @@ int main (int argc, char** argv)
|
|||||||
|
|
||||||
|
|
||||||
/* Added function for particle tracing. Will inject and advance particles as per timePeriod */
|
/* Added function for particle tracing. Will inject and advance particles as per timePeriod */
|
||||||
trace(&particletracer, solver.u, solver.v, t);
|
//trace(&particletracer, solver.u, solver.v, t);
|
||||||
|
|
||||||
t += solver.dt;
|
t += solver.dt;
|
||||||
nt++;
|
nt++;
|
||||||
|
@ -595,7 +595,8 @@ void setSpecialBoundaryCondition(Solver* solver)
|
|||||||
for (int i = 1; i < imax; i++) {
|
for (int i = 1; i < imax; i++) {
|
||||||
U(i, jmax + 1) = 2.0 - U(i, jmax);
|
U(i, jmax + 1) = 2.0 - U(i, jmax);
|
||||||
}
|
}
|
||||||
} else if (strcmp(solver->problem, "canal") == 0) {
|
}
|
||||||
|
else if (strcmp(solver->problem, "canal") == 0) {
|
||||||
double ylength = solver->ylength;
|
double ylength = solver->ylength;
|
||||||
double y;
|
double y;
|
||||||
|
|
||||||
@ -604,6 +605,15 @@ void setSpecialBoundaryCondition(Solver* solver)
|
|||||||
U(0, j) = y * (ylength - y) * 4.0 / (ylength * ylength);
|
U(0, j) = y * (ylength - y) * 4.0 / (ylength * ylength);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (strcmp(solver->problem, "backstep") == 0) {
|
||||||
|
double ylength = solver->ylength;
|
||||||
|
double y;
|
||||||
|
|
||||||
|
for (int j = 1; j < jmax + 1; j++) {
|
||||||
|
//y = mDy * (j - 0.5);
|
||||||
|
U(0, j) = 0.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void setObjectBoundaryCondition(Solver* solver)
|
void setObjectBoundaryCondition(Solver* solver)
|
||||||
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
After Width: | Height: | Size: 42 KiB |
File diff suppressed because one or more lines are too long
@ -288,7 +288,7 @@ int solveRB(Solver* solver)
|
|||||||
isw = jsw;
|
isw = jsw;
|
||||||
exchange(solver);
|
exchange(solver);
|
||||||
|
|
||||||
for (int j = 1; j < jmax + 1; j++) {
|
for (int j = 1; j < jmaxLocal + 1; j++) {
|
||||||
for (int i = isw; i < imax + 1; i += 2) {
|
for (int i = isw; i < imax + 1; i += 2) {
|
||||||
|
|
||||||
double r = RHS(i, j) -
|
double r = RHS(i, j) -
|
||||||
@ -305,10 +305,10 @@ int solveRB(Solver* solver)
|
|||||||
|
|
||||||
for (int i = 1; i < imax + 1; i++) {
|
for (int i = 1; i < imax + 1; i++) {
|
||||||
P(i, 0) = P(i, 1);
|
P(i, 0) = P(i, 1);
|
||||||
P(i, jmax + 1) = P(i, jmax);
|
P(i, jmaxLocal + 1) = P(i, jmaxLocal);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int j = 1; j < jmax + 1; j++) {
|
for (int j = 1; j < jmaxLocal + 1; j++) {
|
||||||
P(0, j) = P(1, j);
|
P(0, j) = P(1, j);
|
||||||
P(imax + 1, j) = P(imax, j);
|
P(imax + 1, j) = P(imax, j);
|
||||||
}
|
}
|
||||||
@ -366,7 +366,7 @@ int solveRBA(Solver* solver)
|
|||||||
isw = jsw;
|
isw = jsw;
|
||||||
exchange(solver);
|
exchange(solver);
|
||||||
|
|
||||||
for (int j = 1; j < jmax + 1; j++) {
|
for (int j = 1; j < jmaxLocal + 1; j++) {
|
||||||
for (int i = isw; i < imax + 1; i += 2) {
|
for (int i = isw; i < imax + 1; i += 2) {
|
||||||
|
|
||||||
double r = RHS(i, j) -
|
double r = RHS(i, j) -
|
||||||
@ -385,10 +385,10 @@ int solveRBA(Solver* solver)
|
|||||||
|
|
||||||
for (int i = 1; i < imax + 1; i++) {
|
for (int i = 1; i < imax + 1; i++) {
|
||||||
P(i, 0) = P(i, 1);
|
P(i, 0) = P(i, 1);
|
||||||
P(i, jmax + 1) = P(i, jmax);
|
P(i, jmaxLocal + 1) = P(i, jmaxLocal);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int j = 1; j < jmax + 1; j++) {
|
for (int j = 1; j < jmaxLocal + 1; j++) {
|
||||||
P(0, j) = P(1, j);
|
P(0, j) = P(1, j);
|
||||||
P(imax + 1, j) = P(imax, j);
|
P(imax + 1, j) = P(imax, j);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user