/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2017-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. OpenFOAM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see . \*---------------------------------------------------------------------------*/ #include "addToRunTimeSelectionTable.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #include "thermoPhysicsTypes.H" #include "rhoConst.H" #include "perfectFluid.H" #include "Boussinesq.H" #include "pureMixture.H" #include "multiComponentMixture.H" #include "reactingMixture.H" #include "SpecieMixture.H" #include "rhoThermo.H" #include "rhoReactionThermo.H" #include "heRhoThermo.H" #include "solidThermo.H" #include "heSolidThermo.H" #include "solidThermoPhysicsTypes.H" #include "kineticGasEvaporation.H" #include "Lee.H" #include "interfaceHeatResistance.H" #include "interfaceOxideRate.H" #include "diffusionGasEvaporation.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { typedef constTransport < species::thermo < hConstThermo < rhoConst >, sensibleEnthalpy > > constRhoHThermoPhysics; typedef constTransport < species::thermo < hConstThermo < Boussinesq >, sensibleEnthalpy > > BoussinesqFluidEThermoPhysics; }; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { using namespace meltingEvaporationModels; //NOTE: First thermo (from) and second otherThermo (to) // kineticGasEvaporation model definitions // From pure liquid (rhoConst) to a multi-component gas incomp phase makeInterfaceContSpecieMixtureType ( kineticGasEvaporation, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics, heRhoThermo, rhoReactionThermo, multiComponentMixture, constIncompressibleGasHThermoPhysics ); // From pure liquid (BoussinesqFluid) to a multi-component gas incomp // phase makeInterfaceContSpecieMixtureType ( kineticGasEvaporation, heRhoThermo, rhoThermo, pureMixture, BoussinesqFluidEThermoPhysics, heRhoThermo, rhoReactionThermo, multiComponentMixture, constIncompressibleGasHThermoPhysics ); // From pure liquid (rhoConst) to pure gas (incompressible ideal gas) makeInterfacePureType ( kineticGasEvaporation, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics, heRhoThermo, rhoThermo, pureMixture, constIncompressibleGasHThermoPhysics ); // From pure liquid (const rho) to pure gas (rhoConst) gas makeInterfacePureType ( kineticGasEvaporation, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics ); // From pure liquid (Boussinesq) to pure gas (incompressible ideal gas) makeInterfacePureType ( kineticGasEvaporation, heRhoThermo, rhoThermo, pureMixture, BoussinesqFluidEThermoPhysics, heRhoThermo, rhoThermo, pureMixture, constIncompressibleGasHThermoPhysics ); // From pure liquid (Boussinesq) to pure gas (rho const) makeInterfacePureType ( kineticGasEvaporation, heRhoThermo, rhoThermo, pureMixture, BoussinesqFluidEThermoPhysics, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics ); // Lee model definitions // From pure phase (rho const) to phase (rho const) makeInterfacePureType ( Lee, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics ); // From pure phase (rho const) to phase (Boussinesq) makeInterfacePureType ( Lee, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics, heRhoThermo, rhoThermo, pureMixture, BoussinesqFluidEThermoPhysics ); // From pure solid phase (const) to phase (Boussinesq) makeInterfacePureType ( Lee, heSolidThermo, solidThermo, pureMixture, hConstSolidThermoPhysics, heRhoThermo, rhoThermo, pureMixture, BoussinesqFluidEThermoPhysics ); // From pure solid phase (const) to phase (rho const) makeInterfacePureType ( Lee, heSolidThermo, solidThermo, pureMixture, hConstSolidThermoPhysics, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics ); // From pure solid phase (const) to phase (tabulated) makeInterfacePureType ( Lee, heSolidThermo, solidThermo, pureMixture, hConstSolidThermoPhysics, heRhoThermo, rhoThermo, pureMixture, tabulatedThermoPhysics ); // From pure solid phase (const) to phase (poly) makeInterfacePureType ( Lee, heSolidThermo, solidThermo, pureMixture, hConstSolidThermoPhysics, heRhoThermo, rhoThermo, pureMixture, icoPoly8HThermoPhysics ); // From pure solid phase (poly) to flow phase (poly) makeInterfacePureType ( Lee, heSolidThermo, solidThermo, pureMixture, hPolyTranspPolyIcoSolidThermoPhysics, heRhoThermo, rhoThermo, pureMixture, icoPoly8HThermoPhysics ); // From pure solid phase (poly) to flow phase (tabulated) makeInterfacePureType ( Lee, heSolidThermo, solidThermo, pureMixture, hPolyTranspPolyIcoSolidThermoPhysics, heRhoThermo, rhoThermo, pureMixture, tabulatedThermoPhysics ); // From pure solid tabulated to pure tabulated flow makeInterfacePureType ( Lee, heSolidThermo, solidThermo, pureMixture, hTabulatedPolyIcoSolidThermoPhysics, heRhoThermo, rhoThermo, pureMixture, tabulatedThermoPhysics ); // From pure phase (exp-Transp, hPower solidThermo) to phase (ico-rho) makeInterfacePureType ( Lee, heSolidThermo, solidThermo, pureMixture, hPowerSolidThermoPhysics, heRhoThermo, rhoThermo, pureMixture, icoPoly8HThermoPhysics ); // From pure phase (const rho) to multi phase (incomp ideal gas) makeInterfaceContSpecieMixtureType ( Lee, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics, heRhoThermo, rhoReactionThermo, multiComponentMixture, constIncompressibleGasHThermoPhysics ); // From pure phase (Boussinesq) to phase (solidThermo) makeInterfacePureType ( Lee, heRhoThermo, rhoThermo, pureMixture, BoussinesqFluidEThermoPhysics, heSolidThermo, solidThermo, pureMixture, hConstSolidThermoPhysics ); // From pure phase (rho const) to phase (solidThermo) makeInterfacePureType ( Lee, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics, heSolidThermo, solidThermo, pureMixture, hConstSolidThermoPhysics ); //From pure phase (poly) to solid phase (exp) makeInterfacePureType ( Lee, heRhoThermo, rhoThermo, pureMixture, icoPoly8HThermoPhysics, heSolidThermo, solidThermo, pureMixture, hPowerSolidThermoPhysics ); //From pure phase (poly) to solid phase (poly) makeInterfacePureType ( Lee, heRhoThermo, rhoThermo, pureMixture, icoPoly8HThermoPhysics, heSolidThermo, solidThermo, pureMixture, hPolyTranspPolyIcoSolidThermoPhysics ); //From pure phase (poly) to solid phase (const) makeInterfacePureType ( Lee, heRhoThermo, rhoThermo, pureMixture, icoPoly8HThermoPhysics, heSolidThermo, solidThermo, pureMixture, hConstSolidThermoPhysics ); //From pure phase (tabulated) to solid phase (poly) makeInterfacePureType ( Lee, heRhoThermo, rhoThermo, pureMixture, tabulatedThermoPhysics, heSolidThermo, solidThermo, pureMixture, hPolyTranspPolyIcoSolidThermoPhysics ); //From pure phase (tabulated) to solid phase (const) makeInterfacePureType ( Lee, heRhoThermo, rhoThermo, pureMixture, tabulatedThermoPhysics, heSolidThermo, solidThermo, pureMixture, hConstSolidThermoPhysics ); makeInterfacePureType ( Lee, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics, heSolidThermo, solidThermo, pureMixture, hTabulatedPolyIcoSolidThermoPhysics ); makeInterfacePureType ( Lee, heRhoThermo, rhoThermo, pureMixture, tabulatedThermoPhysics, heSolidThermo, solidThermo, pureMixture, hTabulatedPolyIcoSolidThermoPhysics ); makeInterfacePureType ( Lee, heRhoThermo, rhoThermo, pureMixture, icoPoly8HThermoPhysics, heSolidThermo, solidThermo, pureMixture, hTabulatedPolyIcoSolidThermoPhysics ); makeInterfacePureType ( Lee, heRhoThermo, rhoThermo, pureMixture, tabulatedThermoPhysics, heRhoThermo, rhoThermo, pureMixture, tabulatedThermoPhysics ); // From pure phase (tabulated) to solid phase (icoTabulated) makeInterfacePureType ( Lee, heRhoThermo, rhoThermo, pureMixture, tabulatedThermoPhysics, heSolidThermo, solidThermo, pureMixture, hTabulatedIcoTabulatedSolidThermoPhysics ); // From solid phase (icoTabulated) to pure phase (tabulated) makeInterfacePureType ( Lee, heSolidThermo, solidThermo, pureMixture, hTabulatedIcoTabulatedSolidThermoPhysics, heRhoThermo, rhoThermo, pureMixture, tabulatedThermoPhysics ); // interfaceHeatResistance model definitions // From pure phase (rho const) to phase (rho const) makeInterfacePureType ( interfaceHeatResistance, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics ); // From pure phase (rho const) to phase (Boussinesq) makeInterfacePureType ( interfaceHeatResistance, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics, heRhoThermo, rhoThermo, pureMixture, BoussinesqFluidEThermoPhysics ); // From pure phase (solidThermo) to phase (Boussinesq) makeInterfacePureType ( interfaceHeatResistance, heSolidThermo, solidThermo, pureMixture, hConstSolidThermoPhysics, heRhoThermo, rhoThermo, pureMixture, BoussinesqFluidEThermoPhysics ); // From pure phase (solidThermo) to phase (rho const) makeInterfacePureType ( interfaceHeatResistance, heSolidThermo, solidThermo, pureMixture, hConstSolidThermoPhysics, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics ); // From pure phase (all-poly solidThermo) to phase (ico-rho) makeInterfacePureType ( interfaceHeatResistance, heSolidThermo, solidThermo, pureMixture, hPolyTranspPolyIcoSolidThermoPhysics, heRhoThermo, rhoThermo, pureMixture, icoPoly8HThermoPhysics ); // From pure phase (exp-Transp, hPower solidThermo) to phase (ico-rho) makeInterfacePureType ( interfaceHeatResistance, heSolidThermo, solidThermo, pureMixture, hPowerSolidThermoPhysics, heRhoThermo, rhoThermo, pureMixture, icoPoly8HThermoPhysics ); // From pure phase (const rho) to multi phase (incomp ideal gas) makeInterfaceContSpecieMixtureType ( interfaceHeatResistance, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics, heRhoThermo, rhoReactionThermo, multiComponentMixture, constIncompressibleGasHThermoPhysics ); // From pure phase (Boussinesq) to phase (solidThermo) makeInterfacePureType ( interfaceHeatResistance, heRhoThermo, rhoThermo, pureMixture, BoussinesqFluidEThermoPhysics, heSolidThermo, solidThermo, pureMixture, hConstSolidThermoPhysics ); // From pure phase (rho const) to phase (solidThermo) makeInterfacePureType ( interfaceHeatResistance, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics, heSolidThermo, solidThermo, pureMixture, hConstSolidThermoPhysics ); //From pure liquid phase (ico-rho) to pure phase (exp-Transp, hPower solidThermo) makeInterfacePureType ( interfaceHeatResistance, heRhoThermo, rhoThermo, pureMixture, icoPoly8HThermoPhysics, heSolidThermo, solidThermo, pureMixture, hPowerSolidThermoPhysics ); // interfaceOxideRate model definitions // From pure phase (tabulated) to solid phase (const) makeInterfacePureType ( interfaceOxideRate, heRhoThermo, rhoThermo, pureMixture, tabulatedThermoPhysics, heSolidThermo, solidThermo, pureMixture, hConstSolidThermoPhysics ); // From pure phase (rho const) to phase (rho const) makeInterfacePureType ( interfaceOxideRate, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics ); // From pure phase (ico) to solid phase (const) makeInterfacePureType ( interfaceOxideRate, heRhoThermo, rhoThermo, pureMixture, icoPoly8HThermoPhysics, heSolidThermo, solidThermo, pureMixture, hConstSolidThermoPhysics ); // From pure phase (tabulated) to phase (rho const) makeInterfacePureType ( interfaceOxideRate, heRhoThermo, rhoThermo, pureMixture, tabulatedThermoPhysics, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics ); // From pure phase (ico) to phase (rho const) makeInterfacePureType ( interfaceOxideRate, heRhoThermo, rhoThermo, pureMixture, icoPoly8HThermoPhysics, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics ); // diffusionGasEvaporation model definitions // From pure liquid (rhoConst) to a multi-component gas incomp phase makeInterfaceContSpecieMixtureType ( diffusionGasEvaporation, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics, heRhoThermo, rhoReactionThermo, multiComponentMixture, constIncompressibleGasHThermoPhysics ); // From pure liquid (BoussinesqFluid) to a multi-component gas incomp // phase makeInterfaceContSpecieMixtureType ( diffusionGasEvaporation, heRhoThermo, rhoThermo, pureMixture, BoussinesqFluidEThermoPhysics, heRhoThermo, rhoReactionThermo, multiComponentMixture, constIncompressibleGasHThermoPhysics ); } // ************************************************************************* //