ABLATE Source Documentation  0.12.34
thermophoreticDiffusion.hpp
1 #ifndef ABLATELIBRARY_THERMOPHORETICDIFFUSION_HPP
2 #define ABLATELIBRARY_THERMOPHORETICDIFFUSION_HPP
3 
4 #include "eos/transport/transportModel.hpp"
5 #include "finiteVolume/fluxCalculator/fluxCalculator.hpp"
6 #include "flowProcess.hpp"
7 
8 namespace ablate::finiteVolume::processes {
9 
14  private:
18  const std::shared_ptr<eos::transport::TransportModel> transportModel;
19 
20  // store the thermodynamicTemperatureFunction to compute viscosity
21  eos::ThermodynamicTemperatureFunction viscosityTemperatureFunction;
22 
23  public:
24  explicit ThermophoreticDiffusion(std::shared_ptr<eos::transport::TransportModel> transportModel);
25 
31 
32  private:
41  static PetscErrorCode ThermophoreticDiffusionEnergyFlux(PetscInt dim, const PetscFVFaceGeom* fg, const PetscInt uOff[], const PetscInt uOff_x[], const PetscScalar field[],
42  const PetscScalar grad[], const PetscInt aOff[], const PetscInt aOff_x[], const PetscScalar aux[], const PetscScalar gradAux[],
43  PetscScalar flux[], void* ctx);
44 
53  static PetscErrorCode ThermophoreticDiffusionVariableFlux(PetscInt dim, const PetscFVFaceGeom* fg, const PetscInt uOff[], const PetscInt uOff_x[], const PetscScalar field[],
54  const PetscScalar grad[], const PetscInt aOff[], const PetscInt aOff_x[], const PetscScalar aux[], const PetscScalar gradAux[],
55  PetscScalar flux[], void* ctx);
56 };
57 
58 } // namespace ablate::finiteVolume::processes
59 #endif // ABLATELIBRARY_SPECIESTRANSPORT_HPP
Definition: finiteVolumeSolver.hpp:28
Definition: thermophoreticDiffusion.hpp:13
void Setup(ablate::finiteVolume::FiniteVolumeSolver &flow) override
Definition: thermophoreticDiffusion.cpp:9