Partially working Karman Vortexs
This commit is contained in:
@@ -78,7 +78,7 @@ int main (int argc, char** argv)
|
||||
|
||||
|
||||
/* 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;
|
||||
nt++;
|
||||
|
@@ -23,7 +23,7 @@
|
||||
#define S(i, j) s[(j) * (imax + 2) + (i)]
|
||||
#define RHS(i, j) rhs[(j) * (imax + 2) + (i)]
|
||||
|
||||
static double distance(i, j, iCenter, jCenter)
|
||||
static double distance(double i, double j, double iCenter, double jCenter)
|
||||
{
|
||||
return sqrt(pow(iCenter - i, 2)
|
||||
+ pow(jCenter - j, 2) * 1.0);
|
||||
@@ -133,10 +133,11 @@ void initSolver(Solver* solver, Parameter* params)
|
||||
double invSqrSum = 1.0 / (dx * dx) + 1.0 / (dy * dy);
|
||||
solver->dtBound = 0.5 * solver->re * 1.0 / invSqrSum;
|
||||
|
||||
int iCenter = 0, jCenter = 0, iRectLength = 0, jRectLength = 0, radius = 0;
|
||||
double xCenter = 0, yCenter = 0, radius = 0;
|
||||
double x1=0, x2=0, y1=0, y2=0;
|
||||
|
||||
int* s = solver->s;
|
||||
|
||||
|
||||
switch(params->shape)
|
||||
{
|
||||
@@ -161,15 +162,15 @@ void initSolver(Solver* solver, Parameter* params)
|
||||
|
||||
break;
|
||||
case CIRCLE:
|
||||
iCenter = params->xCenter/dx;
|
||||
jCenter = params->yCenter/dy;
|
||||
xCenter = params->xCenter;
|
||||
yCenter = params->yCenter;
|
||||
radius = params->circleRadius;
|
||||
|
||||
for (int j = 1; j < jmax + 1; j++)
|
||||
{
|
||||
for (int i = 1; i < imax + 1; i++)
|
||||
{
|
||||
if(distance(i, j, iCenter, jCenter) <= radius)
|
||||
if(distance((i*dx), (j*dy), xCenter, yCenter) <= radius)
|
||||
{
|
||||
S(i, j) = LOCAL;
|
||||
}
|
||||
@@ -605,6 +606,13 @@ void setSpecialBoundaryCondition(Solver* solver)
|
||||
if(S(0,j) == NONE) U(0, j) = 1.0;
|
||||
}
|
||||
}
|
||||
else if (strcmp(solver->problem, "karman") == 0)
|
||||
{
|
||||
for (int j = 1; j < jmax + 1; j++)
|
||||
{
|
||||
U(0, j) = 1.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void setObjectBoundaryCondition(Solver* solver)
|
||||
|
Reference in New Issue
Block a user