#include <NSSolver.h>
Public Member Functions | |
NSSolver () | |
void | solve (int nPatch, real t, real dt, real Re, int nTruncate, int cellNumberPerPatch, int **StartIndex, real *xParticleCenter, real *yParticleCenter, real *zParticleCenter, int **pointNumberMeshU, int **pointNumberMeshV, int **pointNumberMeshW, int **pointNumberMeshP, int **pointNumberMeshOmegaX, int **pointNumberMeshOmegaY, int **pointNumberMeshOmegaZ, int dim, real ***xU, real ***xV, real ***xW, real ***xP, real ***xOmegaX, real ***xOmegaY, real ***xOmegaZ, real *h, real ****u, real ****v, real ****w, real ****p, real ****omegaX, real ****omegaY, real ****omegaZ, real ****uAux, real ****vAux, real ****wAux, real ****fp, real ****exactP, int ****pUnknowns, int ****uCagePoint, int ****vCagePoint, int ****wCagePoint, int ****pCagePoint, int ****omegaXCagePoint, int ****omegaYCagePoint, int ****omegaZCagePoint, vector< real > &UFixedParticles, vector< real > &SFixedParticles, vector< real > &VFixedParticles, int &fixedParticles, int rotatingParticles, real **angVel, real **angVelAcc, real **torqueOld, real **torqueNew, PetscLinearSolver &pSolver, int &zeroInitialGuess) |
Navier-Stokes equation Solver. | |
~NSSolver () |
This class is the acutal Navier-Stokes equation Solver. It calls the classes cage for the inner velocity boundary conditions associated with the particle no-slip boundary conditions and projectionMethod to integate the Navier-Stokes equation.
NSSolver::NSSolver | ( | ) |
constructor
NSSolver::~NSSolver | ( | ) |
destructor
void NSSolver::solve | ( | int | nPatch, | |
real | t, | |||
real | dt, | |||
real | Re, | |||
int | nTruncate, | |||
int | cellNumberPerPatch, | |||
int ** | StartIndex, | |||
real * | xParticleCenter, | |||
real * | yParticleCenter, | |||
real * | zParticleCenter, | |||
int ** | pointNumberMeshU, | |||
int ** | pointNumberMeshV, | |||
int ** | pointNumberMeshW, | |||
int ** | pointNumberMeshP, | |||
int ** | pointNumberMeshOmegaX, | |||
int ** | pointNumberMeshOmegaY, | |||
int ** | pointNumberMeshOmegaZ, | |||
int | dim, | |||
real *** | xU, | |||
real *** | xV, | |||
real *** | xW, | |||
real *** | xP, | |||
real *** | xOmegaX, | |||
real *** | xOmegaY, | |||
real *** | xOmegaZ, | |||
real * | h, | |||
real **** | u, | |||
real **** | v, | |||
real **** | w, | |||
real **** | p, | |||
real **** | omegaX, | |||
real **** | omegaY, | |||
real **** | omegaZ, | |||
real **** | uAux, | |||
real **** | vAux, | |||
real **** | wAux, | |||
real **** | fp, | |||
real **** | exactP, | |||
int **** | pUnknowns, | |||
int **** | uCagePoint, | |||
int **** | vCagePoint, | |||
int **** | wCagePoint, | |||
int **** | pCagePoint, | |||
int **** | omegaXCagePoint, | |||
int **** | omegaYCagePoint, | |||
int **** | omegaZCagePoint, | |||
vector< real > & | UFixedParticles, | |||
vector< real > & | SFixedParticles, | |||
vector< real > & | VFixedParticles, | |||
int & | fixedParticles, | |||
int | rotatingParticles, | |||
real ** | angVel, | |||
real ** | angVelAcc, | |||
real ** | torqueOld, | |||
real ** | torqueNew, | |||
PetscLinearSolver & | pSolver, | |||
int & | zeroInitialGuess | |||
) |
Navier-Stokes equation Solver.
This class is the acutal Navier-Stokes equation Solver. It calls the classes cage for the inner velocity boundary conditions associated with the particle no-slip boundary conditions and projectionMethod to integate the Navier-Stokes equation.
At the time step n, the field of u, v, and p are given. this class is used to calculate the fields in the next time step n+1
nPatch | number of patches |
t | time |
dt | time increment |
Re | Reynolds number |
nTruncate | the order for truncated spectral analytical solution |
cellNumberPerPatch | cell numbers per patch surrounding the sphere |
StartIndex | used to put the refined mesh |
xParticleCenter | x coordinate of particle center |
yParticleCenter | y coordinate of particle center |
zParticleCenter | z coordinate of particle center |
pointNumberMeshU | mesh points for u |
pointNumberMeshV | mesh points for v |
pointNumberMeshW | mesh points for w |
pointNumberMeshP | mesh points for p |
pointNumberMeshOmegaX | mesh points for omegaX |
pointNumberMeshOmegaY | mesh points for omegaY |
pointNumberMeshOmegaZ | mesh points for omegaY |
dim | dimension |
xU | coordinates of u |
xV | coordinates of v |
xW | coordinates of w |
xP | coordinates of p |
xOmegaX | coordinates of omegaX |
xOmegaY | coordinates of omegaX |
xOmegaZ | coordinates of omegaX |
h | space step |
u | velocity u |
v | velocity v |
w | velocity w |
p | pressure |
omegaX | vorticity omegaX |
omegaY | vorticity omegaY |
omegaZ | vorticity omegaZ |
uAux | predicted u |
vAux | predicted v |
wAux | predicted w |
fp | extra force |
exactP | exact pressure |
pUnknowns | mesh points for p |
uCagePoint | cage points for u |
vCagePoint | cage points for v |
wCagePoint | cage points for w |
pCagePoint | cage points for p |
omegaXCagePoint | cage points for omegaX |
omegaYCagePoint | cage points for omegaY |
omegaZCagePoint | cage points for omegaY |
UFixedParticles | stores U of the LLS solver |
SFixedParticles | stores S of the LLS solver |
VFixedParticles | stores V of the LLS solver |
fixedParticles | stores if the particles are fixed |
rotatingParticles | stores if the particles are rotating |
angVel | angular velocity of particles |
angVelAcc | angular velocity acceleration of particles |
torqueOld | torque value in previous iteration of particles |
torqueNew | torque value in current iteration of particles |
pSolver | PETSC linear solver |
zeroInitialGuess | if use zero as the initial guess for pressure |