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.
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:99
User-defined context containing data specific to a single computational grid level.
Definition variables.h:630
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)