Droplet Lagrangian Transient One-dimensional Reacting Code Implementation of both liquid and gas phase governing equations.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

117 lignes
3.8KB

  1. #ifndef SUNDIALS_DEF
  2. #define SUNDIALS_DEF
  3. #include <sundials/sundials_types.h>
  4. #include <nvector/nvector_openmp.h>
  5. #endif
  6. #ifndef PRINT_DEF
  7. #define PRINT_DEF
  8. #include <string.h> //for strings
  9. #include <string>
  10. #include <cstring>
  11. #include <stdio.h> //for printf,scanf
  12. #include <stdlib.h> //for atoi, atof
  13. #endif
  14. #ifndef CANTERA_DEF
  15. #define CANTERA_DEF
  16. #include <cantera/IdealGasMix.h>
  17. #include <cantera/transport.h>
  18. #endif
  19. #include "UserData.h"
  20. void REGRID(double* ydata,double* ydotdata,UserData data);
  21. void INTERPO(double* y,double* ydot,const size_t nvar,size_t nPts,const double XNEW[], const double XOLD[]);
  22. double maxTemperaturePosition(const double* y,const size_t nt,const size_t nvar,const double* x ,size_t nPts);
  23. double maxTemperature(const double* y,const size_t nt, const size_t nvar, size_t nPts);
  24. int maxTemperatureIndex(const double* y,const size_t nt,const size_t nvar ,size_t nPts);
  25. double maxCurvPositionR(const double* y, const size_t nt,
  26. const size_t nvar, const size_t nr, size_t nPts);
  27. int maxCurvIndexR(const double* y, const size_t nt,
  28. const size_t nvar, const size_t nr, size_t nPts);
  29. double maxGradPosition(const double* y, const size_t nt,
  30. const size_t nvar, const double* x, size_t nPts);
  31. int maxGradIndex(const double* y, const size_t nt,
  32. const size_t nvar, const double* x, size_t nPts);
  33. double maxCurvPosition(const double* y, const size_t nt,
  34. const size_t nvar, const double* x, size_t nPts);
  35. int maxCurvIndex(const double* y, const size_t nt,
  36. const size_t nvar, const double* x, size_t nPts);
  37. double isothermPosition(const double* y, const double T, const size_t nt,
  38. const size_t nvar, const double* x, const size_t nPts);
  39. int setAlgebraicVariables(N_Vector *id,UserData data);
  40. inline double calc_area(double x,int* i);
  41. void updateSolution(double* y, double* ydot, const size_t nvar,
  42. const double xOld[],const double xNew[],const size_t npts);
  43. void readInitialCondition(FILE* input, double* ydata, const size_t nvar, const size_t nr, const size_t nPts);
  44. double systemMass(double* ydata, UserData data);
  45. int initializePsiGrid(double* ydata, double* psidata, UserData data);
  46. int setInitialCondition(N_Vector* y,
  47. N_Vector* ydot,
  48. UserData data);
  49. inline void setGas(UserData data, double *ydata, size_t gridPoint);
  50. void getTransport(UserData data,
  51. double *ydata,
  52. size_t gridPoint,
  53. double *rho,
  54. double *lambda,
  55. double *YV);
  56. int residue(double t,
  57. N_Vector y,
  58. N_Vector ydot,
  59. N_Vector res,
  60. void *user_data);
  61. void trackFlameOH(N_Vector y,UserData data);
  62. void trackFlame(N_Vector y,UserData data);
  63. size_t BathGasIndex(UserData data);
  64. size_t oxidizerIndex(UserData data);
  65. inline double Qdot(double* t,
  66. double* x,
  67. double* ignTime,
  68. double* kernelSize,
  69. double* maxQdot);
  70. void printSpaceTimeHeader(UserData data);
  71. void printSpaceTimeOutput(double t, N_Vector* y, FILE* output, UserData data);
  72. void printSpaceTimeRates(double t, N_Vector ydot, UserData data);
  73. void printGlobalHeader(UserData data);
  74. void printGlobalVariables(double t, N_Vector* y, N_Vector* ydot, UserData data);
  75. void printSpaceTimeOutputInterpolated(double t, N_Vector y, UserData data);
  76. void writeRestart(double t, N_Vector* y, N_Vector* ydot, FILE* output, UserData data);
  77. void readRestart(N_Vector* y, N_Vector* ydot, FILE* input, UserData data);
  78. void getTimescale(UserData data, N_Vector* y);
  79. void printTimescaleHeader(UserData data);
  80. void printTimescaleOutput(double t,N_Vector* y,FILE* output,UserData data);
  81. void floorSmallValue(UserData data, N_Vector* y);
  82. void resetTolerance(UserData data, N_Vector* y,N_Vector* atolv);
  83. void getReactions(UserData data,N_Vector* y,FILE* output);
  84. void getSpecies(UserData data,N_Vector* y,FILE* output);