|
[Sponsors] |
How the boundary condition updated while solving the energy equation? |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
April 17, 2019, 04:33 |
How the boundary condition updated while solving the energy equation?
|
#1 |
Member
Join Date: May 2013
Posts: 34
Rep Power: 13 |
Hi foamers,
Like the title said, I want to know how the boundary is updated while solving the energy equation. For example, the energy equation of enthalpy is solved in the reactingFoam, but why we only need to specify the boundary condition of temperature? Where is the linkage to the temperature boundary while the energy equation of enthalpy is solved? Does the solver calculate the enthalpy at the boundary using the temperature to solve the equation? I hope someone can help me |
|
April 17, 2019, 09:55 |
|
#2 |
Senior Member
Yan Zhang
Join Date: May 2014
Posts: 120
Rep Power: 12 |
This is one of the Constructors of heThermo:
Code:
template<class BasicThermo, class MixtureType> Foam::heThermo<BasicThermo, MixtureType>::heThermo ( const fvMesh& mesh, const word& phaseName ) : BasicThermo(mesh, phaseName), MixtureType(*this, mesh, phaseName), he_ ( IOobject ( BasicThermo::phasePropertyName ( MixtureType::thermoType::heName() ), mesh.time().timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), mesh, dimEnergy/dimMass, this->heBoundaryTypes(), this->heBoundaryBaseTypes() ) { init(); } Code:
Foam::wordList Foam::basicThermo::heBoundaryTypes() { const volScalarField::Boundary& tbf = this->T_.boundaryField(); wordList hbt = tbf.types(); forAll(tbf, patchi) { if (isA<fixedValueFvPatchScalarField>(tbf[patchi])) { hbt[patchi] = fixedEnergyFvPatchScalarField::typeName; } else if ( isA<zeroGradientFvPatchScalarField>(tbf[patchi]) || isA<fixedGradientFvPatchScalarField>(tbf[patchi]) ) { hbt[patchi] = gradientEnergyFvPatchScalarField::typeName; } else if (isA<mixedFvPatchScalarField>(tbf[patchi])) { hbt[patchi] = mixedEnergyFvPatchScalarField::typeName; } else if (isA<fixedJumpFvPatchScalarField>(tbf[patchi])) { hbt[patchi] = energyJumpFvPatchScalarField::typeName; } else if (isA<fixedJumpAMIFvPatchScalarField>(tbf[patchi])) { hbt[patchi] = energyJumpAMIFvPatchScalarField::typeName; } else if (tbf[patchi].type() == "energyRegionCoupledFvPatchScalarField") { hbt[patchi] = "energyRegionCoupledFvPatchScalarField"; } } return hbt; } Code:
Foam::wordList Foam::basicThermo::heBoundaryBaseTypes() { const volScalarField::Boundary& tbf = this->T_.boundaryField(); wordList hbt(tbf.size(), word::null); forAll(tbf, patchi) { if (isA<fixedJumpFvPatchScalarField>(tbf[patchi])) { const fixedJumpFvPatchScalarField& pf = dynamic_cast<const fixedJumpFvPatchScalarField&>(tbf[patchi]); hbt[patchi] = pf.interfaceFieldType(); } else if (isA<fixedJumpAMIFvPatchScalarField>(tbf[patchi])) { const fixedJumpAMIFvPatchScalarField& pf = dynamic_cast<const fixedJumpAMIFvPatchScalarField&> ( tbf[patchi] ); hbt[patchi] = pf.interfaceFieldType(); } } return hbt; } Code:
template<class BasicThermo, class MixtureType> void Foam::heThermo<BasicThermo, MixtureType>::init() { scalarField& heCells = he_.primitiveFieldRef(); const scalarField& pCells = this->p_; const scalarField& TCells = this->T_; forAll(heCells, celli) { heCells[celli] = this->cellMixture(celli).HE(pCells[celli], TCells[celli]); } volScalarField::Boundary& heBf = he_.boundaryFieldRef(); forAll(heBf, patchi) { heBf[patchi] == he ( this->p_.boundaryField()[patchi], this->T_.boundaryField()[patchi], patchi ); } this->heBoundaryCorrection(he_); }
__________________
https://openfoam.top |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Segmentation fault when using reactingFOAM for Fluids | Tommy Floessner | OpenFOAM Running, Solving & CFD | 4 | April 22, 2018 13:30 |
simpleFoam error - "Floating point exception" | mbcx4jc2 | OpenFOAM Running, Solving & CFD | 12 | August 4, 2015 03:20 |
Unstabil Simulation with chtMultiRegionFoam | mbay101 | OpenFOAM Running, Solving & CFD | 13 | December 28, 2013 14:12 |
SLTS+rhoPisoFoam: what is rDeltaT??? | nileshjrane | OpenFOAM Running, Solving & CFD | 4 | February 25, 2013 05:13 |
Could anybody help me see this error and give help | liugx212 | OpenFOAM Running, Solving & CFD | 3 | January 4, 2006 19:07 |