Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Development
openfoam
Commits
e7799537
Commit
e7799537
authored
Nov 17, 2009
by
mattijs
Browse files
steady state cht solver; switched default coupled bc to be fixedValue
parent
7c32ccaa
Changes
29
Hide whitespace changes
Inline
Side-by-side
applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/Make/files
0 → 100644
View file @
e7799537
derivedFvPatchFields/solidWallHeatFluxTemperature/solidWallHeatFluxTemperatureFvPatchScalarField.C
chtMultiRegionSimpleFoam.C
EXE = $(FOAM_APPBIN)/chtMultiRegionSimpleFoam
applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/Make/options
0 → 100644
View file @
e7799537
EXE_INC = \
/* -DFULLDEBUG -O0 -g */ \
-Ifluid \
-Isolid \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/turbulenceModels \
-I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel/lnInclude \
-I$(LIB_SRC)/turbulenceModels/compressible/RAS/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lbasicThermophysicalModels \
-lspecie \
-lcompressibleRASModels
applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C
0 → 100644
View file @
e7799537
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
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 2 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, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Application
chtMultiRegionSimpleFoam
Description
Steady-state version of chtMultiRegionFoam
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "basicPsiThermo.H"
#include "turbulenceModel.H"
#include "fixedGradientFvPatchFields.H"
#include "regionProperties.H"
#include "compressibleCourantNo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int
main
(
int
argc
,
char
*
argv
[])
{
#include "setRootCase.H"
#include "createTime.H"
regionProperties
rp
(
runTime
);
#include "createFluidMeshes.H"
#include "createSolidMeshes.H"
#include "createFluidFields.H"
#include "createSolidFields.H"
#include "initContinuityErrs.H"
while
(
runTime
.
run
())
{
Info
<<
"Time = "
<<
runTime
.
timeName
()
<<
nl
<<
endl
;
forAll
(
fluidRegions
,
i
)
{
Info
<<
"
\n
Solving for fluid region "
<<
fluidRegions
[
i
].
name
()
<<
endl
;
#include "setRegionFluidFields.H"
#include "readFluidMultiRegionSIMPLEControls.H"
#include "initConvergenceCheck.H"
#include "solveFluid.H"
#include "convergenceCheck.H"
}
forAll
(
solidRegions
,
i
)
{
Info
<<
"
\n
Solving for solid region "
<<
solidRegions
[
i
].
name
()
<<
endl
;
#include "setRegionSolidFields.H"
#include "readSolidMultiRegionSIMPLEControls.H"
#include "initConvergenceCheck.H"
#include "solveSolid.H"
#include "convergenceCheck.H"
}
runTime
++
;
runTime
.
write
();
Info
<<
"ExecutionTime = "
<<
runTime
.
elapsedCpuTime
()
<<
" s"
<<
" ClockTime = "
<<
runTime
.
elapsedClockTime
()
<<
" s"
<<
nl
<<
endl
;
}
Info
<<
"End
\n
"
<<
endl
;
return
0
;
}
// ************************************************************************* //
applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/derivedFvPatchFields/solidWallHeatFluxTemperature/solidWallHeatFluxTemperatureFvPatchScalarField.C
0 → 100644
View file @
e7799537
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
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 2 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, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
\*---------------------------------------------------------------------------*/
#include "solidWallHeatFluxTemperatureFvPatchScalarField.H"
#include "addToRunTimeSelectionTable.H"
#include "fvPatchFieldMapper.H"
#include "volFields.H"
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam
::
solidWallHeatFluxTemperatureFvPatchScalarField
::
solidWallHeatFluxTemperatureFvPatchScalarField
(
const
fvPatch
&
p
,
const
DimensionedField
<
scalar
,
volMesh
>&
iF
)
:
fixedValueFvPatchScalarField
(
p
,
iF
),
q_
(
p
.
size
(),
0
.
0
),
KName_
(
"undefined-K"
)
{}
Foam
::
solidWallHeatFluxTemperatureFvPatchScalarField
::
solidWallHeatFluxTemperatureFvPatchScalarField
(
const
solidWallHeatFluxTemperatureFvPatchScalarField
&
ptf
,
const
fvPatch
&
p
,
const
DimensionedField
<
scalar
,
volMesh
>&
iF
,
const
fvPatchFieldMapper
&
mapper
)
:
fixedValueFvPatchScalarField
(
ptf
,
p
,
iF
,
mapper
),
q_
(
ptf
.
q_
,
mapper
),
KName_
(
ptf
.
KName_
)
{}
Foam
::
solidWallHeatFluxTemperatureFvPatchScalarField
::
solidWallHeatFluxTemperatureFvPatchScalarField
(
const
fvPatch
&
p
,
const
DimensionedField
<
scalar
,
volMesh
>&
iF
,
const
dictionary
&
dict
)
:
fixedValueFvPatchScalarField
(
p
,
iF
,
dict
),
q_
(
"q"
,
dict
,
p
.
size
()),
KName_
(
dict
.
lookup
(
"K"
))
{}
Foam
::
solidWallHeatFluxTemperatureFvPatchScalarField
::
solidWallHeatFluxTemperatureFvPatchScalarField
(
const
solidWallHeatFluxTemperatureFvPatchScalarField
&
tppsf
)
:
fixedValueFvPatchScalarField
(
tppsf
),
q_
(
tppsf
.
q_
),
KName_
(
tppsf
.
KName_
)
{}
Foam
::
solidWallHeatFluxTemperatureFvPatchScalarField
::
solidWallHeatFluxTemperatureFvPatchScalarField
(
const
solidWallHeatFluxTemperatureFvPatchScalarField
&
tppsf
,
const
DimensionedField
<
scalar
,
volMesh
>&
iF
)
:
fixedValueFvPatchScalarField
(
tppsf
,
iF
),
q_
(
tppsf
.
q_
),
KName_
(
tppsf
.
KName_
)
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void
Foam
::
solidWallHeatFluxTemperatureFvPatchScalarField
::
autoMap
(
const
fvPatchFieldMapper
&
m
)
{
fixedValueFvPatchScalarField
::
autoMap
(
m
);
q_
.
autoMap
(
m
);
}
void
Foam
::
solidWallHeatFluxTemperatureFvPatchScalarField
::
rmap
(
const
fvPatchScalarField
&
ptf
,
const
labelList
&
addr
)
{
fixedValueFvPatchScalarField
::
rmap
(
ptf
,
addr
);
const
solidWallHeatFluxTemperatureFvPatchScalarField
&
hfptf
=
refCast
<
const
solidWallHeatFluxTemperatureFvPatchScalarField
>
(
ptf
);
q_
.
rmap
(
hfptf
.
q_
,
addr
);
}
void
Foam
::
solidWallHeatFluxTemperatureFvPatchScalarField
::
updateCoeffs
()
{
if
(
updated
())
{
return
;
}
const
scalarField
&
Kw
=
patch
().
lookupPatchField
<
volScalarField
,
scalar
>
(
KName_
);
const
fvPatchScalarField
&
Tw
=
*
this
;
operator
==
(
q_
/
(
patch
().
deltaCoeffs
()
*
Kw
)
+
Tw
.
patchInternalField
());
fixedValueFvPatchScalarField
::
updateCoeffs
();
}
void
Foam
::
solidWallHeatFluxTemperatureFvPatchScalarField
::
write
(
Ostream
&
os
)
const
{
fixedValueFvPatchScalarField
::
write
(
os
);
q_
.
writeEntry
(
"q"
,
os
);
os
.
writeKeyword
(
"K"
)
<<
KName_
<<
token
::
END_STATEMENT
<<
nl
;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace
Foam
{
makePatchTypeField
(
fvPatchScalarField
,
solidWallHeatFluxTemperatureFvPatchScalarField
);
}
// ************************************************************************* //
applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/derivedFvPatchFields/solidWallHeatFluxTemperature/solidWallHeatFluxTemperatureFvPatchScalarField.H
0 → 100644
View file @
e7799537
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
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 2 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, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Class
solidWallHeatFluxTemperatureFvPatchScalarField
Description
Heat flux boundary condition for temperature on solid region
Example usage:
myWallPatch
{
type solidWallHeatFluxTemperature;
K K; // Name of K field
q uniform 1000; // Heat flux / [W/m2]
value 300.0; // Initial temperature / [K]
}
SourceFiles
solidWallHeatFluxTemperatureFvPatchScalarField.C
\*---------------------------------------------------------------------------*/
#ifndef solidWallHeatFluxTemperatureFvPatchScalarField_H
#define solidWallHeatFluxTemperatureFvPatchScalarField_H
#include "fixedValueFvPatchFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace
Foam
{
/*---------------------------------------------------------------------------*\
Class solidWallHeatFluxTemperatureFvPatchScalarField Declaration
\*---------------------------------------------------------------------------*/
class
solidWallHeatFluxTemperatureFvPatchScalarField
:
public
fixedValueFvPatchScalarField
{
// Private data
//- Heat flux / [W/m2]
scalarField
q_
;
//- Name of thermal conductivity field
word
KName_
;
public:
//- Runtime type information
TypeName
(
"solidWallHeatFluxTemperature"
);
// Constructors
//- Construct from patch and internal field
solidWallHeatFluxTemperatureFvPatchScalarField
(
const
fvPatch
&
,
const
DimensionedField
<
scalar
,
volMesh
>&
);
//- Construct from patch, internal field and dictionary
solidWallHeatFluxTemperatureFvPatchScalarField
(
const
fvPatch
&
,
const
DimensionedField
<
scalar
,
volMesh
>&
,
const
dictionary
&
);
//- Construct by mapping given
// solidWallHeatFluxTemperatureFvPatchScalarField
// onto a new patch
solidWallHeatFluxTemperatureFvPatchScalarField
(
const
solidWallHeatFluxTemperatureFvPatchScalarField
&
,
const
fvPatch
&
,
const
DimensionedField
<
scalar
,
volMesh
>&
,
const
fvPatchFieldMapper
&
);
//- Construct as copy
solidWallHeatFluxTemperatureFvPatchScalarField
(
const
solidWallHeatFluxTemperatureFvPatchScalarField
&
);
//- Construct and return a clone
virtual
tmp
<
fvPatchScalarField
>
clone
()
const
{
return
tmp
<
fvPatchScalarField
>
(
new
solidWallHeatFluxTemperatureFvPatchScalarField
(
*
this
)
);
}
//- Construct as copy setting internal field reference
solidWallHeatFluxTemperatureFvPatchScalarField
(
const
solidWallHeatFluxTemperatureFvPatchScalarField
&
,
const
DimensionedField
<
scalar
,
volMesh
>&
);
//- Construct and return a clone setting internal field reference
virtual
tmp
<
fvPatchScalarField
>
clone
(
const
DimensionedField
<
scalar
,
volMesh
>&
iF
)
const
{
return
tmp
<
fvPatchScalarField
>
(
new
solidWallHeatFluxTemperatureFvPatchScalarField
(
*
this
,
iF
)
);
}
// Member functions
// Evaluation functions
//- Update the coefficients associated with the patch field
virtual
void
updateCoeffs
();
// Mapping functions
//- Map (and resize as needed) from self given a mapping object
virtual
void
autoMap
(
const
fvPatchFieldMapper
&
);
//- Reverse map the given fvPatchField onto this fvPatchField
virtual
void
rmap
(
const
fvPatchScalarField
&
,
const
labelList
&
);
// I-O
//- Write
void
write
(
Ostream
&
)
const
;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
}
// End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //
applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/UEqn.H
0 → 100644
View file @
e7799537
// Solve the Momentum equation
tmp
<
fvVectorMatrix
>
UEqn
(
fvm
::
div
(
phi
,
U
)
-
fvm
::
Sp
(
fvc
::
div
(
phi
),
U
)
+
turb
.
divDevRhoReff
(
U
)
);
UEqn
().
relax
();
eqnResidual
=
solve
(
UEqn
()
==
fvc
::
reconstruct
(
fvc
::
interpolate
(
rho
)
*
(
g
&
mesh
.
Sf
())
-
fvc
::
snGrad
(
p
)
*
mesh
.
magSf
()
)
).
initialResidual
();
maxResidual
=
max
(
eqnResidual
,
maxResidual
);
applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/compressibleContinuityErrors.H
0 → 100644
View file @
e7799537
{
dimensionedScalar
totalMass
=
fvc
::
domainIntegrate
(
rho
);
scalar
sumLocalContErr
=
(
fvc
::
domainIntegrate
(
mag
(
rho
-
thermo
.
rho
()))
/
totalMass
).
value
();
scalar
globalContErr
=
(
fvc
::
domainIntegrate
(
rho
-
thermo
.
rho
())
/
totalMass
).
value
();
cumulativeContErr
[
i
]
+=
globalContErr
;
Info
<<
"time step continuity errors ("
<<
mesh
.
name
()
<<
")"
<<
": sum local = "
<<
sumLocalContErr
<<
", global = "
<<
globalContErr
<<
", cumulative = "
<<
cumulativeContErr
[
i
]
<<
endl
;
}
applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/compressibleCourantNo.C
0 → 100644
View file @
e7799537
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
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 2 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, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
\*---------------------------------------------------------------------------*/
#include "compressibleCourantNo.H"
#include "fvc.H"
Foam
::
scalar
Foam
::
compressibleCourantNo
(
const
fvMesh
&
mesh
,
const
Time
&
runTime
,
const
volScalarField
&
rho
,
const
surfaceScalarField
&
phi