Droplet Lagrangian Transient One-dimensional Reacting Code Implementation of both liquid and gas phase governing equations.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

117 lines
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);