PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
Loading...
Searching...
No Matches
wallfunction.h
Go to the documentation of this file.
1#ifndef WALLFUNCTION_H
2#define WALLFUNCTION_H
3
4#include <petscpf.h>
5#include <petscdmswarm.h>
6#include <stdlib.h>
7#include <time.h>
8#include <math.h>
9#include <petsctime.h>
10#include <petscsys.h>
11#include <petscdmcomposite.h>
12#include <petscsystypes.h>
13
14// Include additional headers
15#include "variables.h" // Shared type definitions
16#include "ParticleSwarm.h" // Particle swarm functions
17#include "walkingsearch.h" // Particle location functions
18#include "grid.h" // Grid functions
19#include "logging.h" // Logging macros
20#include "io.h" // Data Input and Output functions
21#include "interpolation.h" // Interpolation routines
22#include "AnalyticalSolution.h" // Analytical Solution for testing
23#include "ParticleMotion.h" // Functions related to motion of particles
24#include "Boundaries.h" // Functions related to Boundary condition
25
26void noslip (UserCtx *user, double sc, double sb, Cmpnts Ua, Cmpnts Uc,
27 Cmpnts *Ub, double nx, double ny, double nz);
28
29void freeslip (UserCtx *user, double sc, double sb, Cmpnts Ua, Cmpnts Uc,
30 Cmpnts *Ub, double nx, double ny, double nz);
31
32double E_coeff (double utau, double ks, double nu);
33
34double u_hydset_roughness(double nu, double y, double utau, double ks);
35
36double f_hydset(double nu, double u, double y, double utau0, double ks);
37
38double df_hydset (double nu, double u, double y, double utau0, double ks);
39
40double find_utau_hydset(double nu,double u, double y, double utau_guess, double ks);
41
42double nu_t(double yplus);
43
44double integrate_1(double nu,double y,double utau, int m);
45
46double taw(double nu, double utau, double y, double u, double dpdt);
47
48double u_Cabot(double nu, double y, double utau, double dpdt, double taw);
49
50double u_Werner(double nu, double y, double utau);
51
52double f_Werner(double nu, double u, double y, double utau);
53
54double df_Werner(double nu, double u, double y, double utau);
55
56double f_Cabot(double nu, double u, double y, double utau, double dpdt, double dpdtn);
57
58double df_Cabot(double nu, double u, double y, double utau, double dpdt, double dpdtn);
59
60void find_utau_Cabot(double nu, double u, double y, double guess, double dpdt, double dpdtn, double *utau, double *taw1, double *taw2);
61
62double find_utau_Werner(double nu, double u, double y, double guess);
63
64double sign(double a);
65
66double u_loglaw(double y, double utau, double roughness);
67
68double find_utau_loglaw(double u, double y, double roughness);
69
70void wall_function (UserCtx *user, double sc, double sb,
71 Cmpnts Ua, Cmpnts Uc, Cmpnts *Ub, PetscReal *ustar,
72 double nx, double ny, double nz);
73
74void wall_function_loglaw (UserCtx *user, double ks, double sc, double sb,
75 Cmpnts Ua, Cmpnts Uc, Cmpnts *Ub, PetscReal *ustar,
76 double nx, double ny, double nz);
77
78void wall_function_Cabot (UserCtx *user, double ks, double sc, double sb,
79 Cmpnts Ua, Cmpnts Uc, Cmpnts *Ub, PetscReal *ustar,
80 double nx, double ny, double nz, double dpdx, double dpdy, double dpdz, int count);
81
82
83#endif // WALLFUNCTION_H
Header file for Particle Motion and migration related functions.
Header file for Particle Swarm management functions.
Public interface for grid, solver, and metric setup routines.
Public interface for data input/output routines.
Logging utilities and macros for PETSc-based applications.
Main header file for a complex fluid dynamics solver.
A 3D point or vector with PetscScalar components.
Definition variables.h:100
User-defined context containing data specific to a single computational grid level.
Definition variables.h:661
Header file for particle location functions using the walking search algorithm.
double u_hydset_roughness(double nu, double y, double utau, double ks)
double df_hydset(double nu, double u, double y, double utau0, double ks)
double df_Cabot(double nu, double u, double y, double utau, double dpdt, double dpdtn)
double E_coeff(double utau, double ks, double nu)
double f_Cabot(double nu, double u, double y, double utau, double dpdt, double dpdtn)
double df_Werner(double nu, double u, double y, double utau)
double sign(double a)
void wall_function_Cabot(UserCtx *user, double ks, double sc, double sb, Cmpnts Ua, Cmpnts Uc, Cmpnts *Ub, PetscReal *ustar, double nx, double ny, double nz, double dpdx, double dpdy, double dpdz, int count)
void wall_function(UserCtx *user, double sc, double sb, Cmpnts Ua, Cmpnts Uc, Cmpnts *Ub, PetscReal *ustar, double nx, double ny, double nz)
double u_Werner(double nu, double y, double utau)
void noslip(UserCtx *user, double sc, double sb, Cmpnts Ua, Cmpnts Uc, Cmpnts *Ub, double nx, double ny, double nz)
void find_utau_Cabot(double nu, double u, double y, double guess, double dpdt, double dpdtn, double *utau, double *taw1, double *taw2)
double find_utau_Werner(double nu, double u, double y, double guess)
double find_utau_hydset(double nu, double u, double y, double utau_guess, double ks)
double f_Werner(double nu, double u, double y, double utau)
double taw(double nu, double utau, double y, double u, double dpdt)
double u_Cabot(double nu, double y, double utau, double dpdt, double taw)
void wall_function_loglaw(UserCtx *user, double ks, double sc, double sb, Cmpnts Ua, Cmpnts Uc, Cmpnts *Ub, PetscReal *ustar, double nx, double ny, double nz)
double integrate_1(double nu, double y, double utau, int m)
double find_utau_loglaw(double u, double y, double roughness)
double f_hydset(double nu, double u, double y, double utau0, double ks)
void freeslip(UserCtx *user, double sc, double sb, Cmpnts Ua, Cmpnts Uc, Cmpnts *Ub, double nx, double ny, double nz)
double u_loglaw(double y, double utau, double roughness)
double nu_t(double yplus)