thermophysicalModels: Removed pressure field from solid thermos

Solid thermo no longer requires a pressure field, so solid regions of
chtMultiRegionFoam cases no longer need a 0/<solidRegionName>/p file.

In order for solidThermo to continue to use heThermo and the low level
thermo classes, it now constructs a uniformGeometricScalarField for the
pressure with the value NaN. This is passed into the low-level thermo
models by heThermo. The enforces the requirement that low-level thermo
models used by solidThermo should have no pressure dependence. If an
instantiation is made with pressure dependence, the code will fail with
a floating point error.
This commit is contained in:
Will Bainbridge
2020-08-07 09:43:55 +01:00
parent 49510919f8
commit 51d763685e
31 changed files with 558 additions and 797 deletions

View File

@ -1,34 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "$FOAM_CASE/constant/initialConditions"
dimensions [1 -1 -2 0 0 0 0];
internalField uniform $pInitial;
boundaryField
{
".*"
{
type calculated;
value uniform $pInitial;
}
#includeEtc "caseDicts/setConstraintTypes"
}
// ************************************************************************* //

View File

@ -616,6 +616,9 @@ meshTools = meshes/meshTools
$(meshTools)/matchPoints.C
fields/UniformDimensionedFields/uniformDimensionedFields.C
fields/UniformGeometricFields/uniformGeometricFields.C
fields/cloud/cloud.C
Fields = fields/Fields

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2019 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2020 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -22,20 +22,21 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::solidPressureThermo
Foam::UniformFieldField
Description
Fundamental solid thermodynamic properties including pressure.
A class representing the concept of a field of uniform fields which stores
only the single value and providing the operator[] to return it.
SourceFiles
solidPressureThermo.C
UniformFieldFieldI.H
\*---------------------------------------------------------------------------*/
#ifndef solidPressureThermo_H
#define solidPressureThermo_H
#ifndef UniformFieldField_H
#define UniformFieldField_H
#include "solidThermo.H"
#include "UniformField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -43,59 +44,34 @@ namespace Foam
{
/*---------------------------------------------------------------------------*\
Class solidPressureThermo Declaration
Class UniformFieldField Declaration
\*---------------------------------------------------------------------------*/
class solidPressureThermo
:
public solidThermo
template<class Type>
class UniformFieldField
{
// Private Data
protected:
// Fields
//- Pressure [Pa]
volScalarField& p_;
Type value_;
public:
//- Runtime type information
TypeName("solidPressureThermo");
// Public typedefs
//- Component type
typedef typename pTraits<Type>::cmptType cmptType;
// Constructors
//- Construct from mesh and phase name
solidPressureThermo
(
const fvMesh&,
const word& phaseName
);
//- Construct from mesh, dictionary and phase name
solidPressureThermo
(
const fvMesh&,
const dictionary& dict,
const word& phaseName
);
//- Construct given value
UniformFieldField(const Type& value);
//- Destructor
virtual ~solidPressureThermo();
// Member Operators
// Member Functions
// Access to thermodynamic state variables
//- Pressure [Pa]
// Non-const access allowed for transport equations
virtual volScalarField& p();
//- Pressure [Pa]
virtual const volScalarField& p() const;
inline UniformField<Type> operator[](const label) const;
};
@ -105,6 +81,10 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "UniformFieldFieldI.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -0,0 +1,47 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2020 OpenFOAM Foundation
\\/ 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 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 <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "UniformFieldField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
template<class Type>
inline Foam::UniformFieldField<Type>::UniformFieldField(const Type& value)
:
value_(value)
{}
template<class Type>
inline Foam::UniformField<Type> Foam::UniformFieldField<Type>::operator[]
(
const label
) const
{
return UniformField<Type>(value_);
}
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2013-2019 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2013-2020 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -51,8 +51,15 @@ class UniformField
Type value_;
public:
// Public typedefs
//- Component type
typedef typename pTraits<Type>::cmptType cmptType;
// Constructors
//- Construct given value

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2013-2018 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2013-2020 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -39,6 +39,7 @@ SourceFiles
#include "regIOobject.H"
#include "dimensionedType.H"
#include "UniformField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -58,6 +59,15 @@ class UniformDimensionedField
public:
// Public Typedefs
//- Type of the non-dimensioned field
typedef UniformField<Type> FieldType;
//- Component type of the elements of the field
typedef typename UniformField<Type>::cmptType cmptType;
//- Runtime type information
TypeName("UniformDimensionedField");
@ -87,8 +97,6 @@ public:
return dimensioned<Type>::name();
}
bool writeData(Ostream&) const;
//- Is object global
virtual bool global() const
{
@ -102,6 +110,15 @@ public:
return globalFilePath(type());
}
//- Return the non-dimensioned field
FieldType field() const
{
return FieldType(this->value());
}
//- WriteData function required for regIOobject write operation
bool writeData(Ostream&) const;
// Member Operators

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2019 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2020 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -23,60 +23,46 @@ License
\*---------------------------------------------------------------------------*/
#include "solidPressureThermo.H"
#include "fvMesh.H"
/* * * * * * * * * * * * * * * private static data * * * * * * * * * * * * * */
namespace Foam
{
defineTypeNameAndDebug(solidPressureThermo, 0);
}
#include "UniformGeometricField.H"
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::solidPressureThermo::solidPressureThermo
template<class Type>
Foam::UniformGeometricField<Type>::UniformGeometricField
(
const fvMesh& mesh,
const word& phaseName
const IOobject& io,
const dimensioned<Type>& dt
)
:
solidThermo(mesh, phaseName),
p_(lookupOrConstruct(mesh, "p"))
UniformDimensionedField<Type>(io, dt)
{}
Foam::solidPressureThermo::solidPressureThermo
template<class Type>
Foam::UniformGeometricField<Type>::UniformGeometricField
(
const fvMesh& mesh,
const dictionary& dict,
const word& phaseName
const UniformGeometricField<Type>& rdt
)
:
solidThermo(mesh, dict, phaseName),
p_(lookupOrConstruct(mesh, "p"))
UniformDimensionedField<Type>(rdt)
{}
template<class Type>
Foam::UniformGeometricField<Type>::UniformGeometricField
(
const IOobject& io
)
:
UniformDimensionedField<Type>(io)
{}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::solidPressureThermo::~solidPressureThermo()
template<class Type>
Foam::UniformGeometricField<Type>::~UniformGeometricField()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
const Foam::volScalarField& Foam::solidPressureThermo::p() const
{
return p_;
}
Foam::volScalarField& Foam::solidPressureThermo::p()
{
return p_;
}
// ************************************************************************* //

View File

@ -0,0 +1,116 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2020 OpenFOAM Foundation
\\/ 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 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 <http://www.gnu.org/licenses/>.
Class
Foam::UniformGeometricField
Description
Dimensioned<Type> registered with the database as a registered IOobject
which has the functionality of a uniform field and allows values from the
top-level code to be passed to boundary conditions etc.
SourceFiles
UniformGeometricField.C
\*---------------------------------------------------------------------------*/
#ifndef UniformGeometricField_H
#define UniformGeometricField_H
#include "UniformDimensionedField.H"
#include "UniformFieldField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class UniformGeometricField Declaration
\*---------------------------------------------------------------------------*/
template<class Type>
class UniformGeometricField
:
public UniformDimensionedField<Type>
{
public:
// Public Typedefs
typedef UniformDimensionedField<Type> Internal;
typedef UniformField<Type> Patch;
typedef UniformFieldField<Type> Boundary;
typedef Type cmptType;
//- Runtime type information
TypeName("UniformGeometricField");
// Constructors
//- Construct from components. Either reads or uses supplied value.
UniformGeometricField(const IOobject&, const dimensioned<Type>&);
//- Copy constructor
UniformGeometricField(const UniformGeometricField<Type>&);
//- Construct from Istream
UniformGeometricField(const IOobject&);
//- Destructor
virtual ~UniformGeometricField();
// Member Operators
inline const UniformGeometricField<Type>& oldTime() const;
inline const Internal& operator()() const;
inline const Internal& v() const;
inline typename Internal::FieldType primitiveField() const;
inline Boundary boundaryField() const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#ifdef NoRepository
#include "UniformGeometricField.C"
#include "UniformGeometricFieldI.H"
#endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -0,0 +1,70 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2020 OpenFOAM Foundation
\\/ 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 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 <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "UniformGeometricField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
template<class Type>
inline const Foam::UniformGeometricField<Type>&
Foam::UniformGeometricField<Type>::oldTime() const
{
return *this;
}
template<class Type>
inline const typename Foam::UniformGeometricField<Type>::Internal&
Foam::UniformGeometricField<Type>::operator()() const
{
return *this;
}
template<class Type>
inline const typename Foam::UniformGeometricField<Type>::Internal&
Foam::UniformGeometricField<Type>::v() const
{
return *this;
}
template<class Type>
inline typename Foam::UniformGeometricField<Type>::Internal::FieldType
Foam::UniformGeometricField<Type>::primitiveField() const
{
return typename Internal::FieldType(this->value());
}
template<class Type>
inline typename Foam::UniformGeometricField<Type>::Boundary
Foam::UniformGeometricField<Type>::boundaryField() const
{
return Boundary(this->value());
}
// ************************************************************************* //

View File

@ -0,0 +1,45 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2020 OpenFOAM Foundation
\\/ 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 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 <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "uniformGeometricFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTemplateTypeNameAndDebug(uniformGeometricScalarField, 0);
defineTemplateTypeNameAndDebug(uniformGeometricVectorField, 0);
defineTemplateTypeNameAndDebug(uniformGeometricSphericalTensorField, 0);
defineTemplateTypeNameAndDebug(uniformGeometricSymmTensorField, 0);
defineTemplateTypeNameAndDebug(uniformGeometricTensorField, 0);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,62 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2020 OpenFOAM Foundation
\\/ 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 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 <http://www.gnu.org/licenses/>.
InClass
Foam::UniformGeometricField
Description
SourceFiles
uniformGeometricFields.C
\*---------------------------------------------------------------------------*/
#ifndef uniformGeometricFields_H
#define uniformGeometricFields_H
#include "UniformGeometricField.H"
#include "fieldTypes.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
typedef UniformGeometricField<scalar> uniformGeometricScalarField;
typedef UniformGeometricField<vector> uniformGeometricVectorField;
typedef UniformGeometricField<sphericalTensor>
uniformGeometricSphericalTensorField;
typedef UniformGeometricField<symmTensor> uniformGeometricSymmTensorField;
typedef UniformGeometricField<tensor> uniformGeometricTensorField;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -24,7 +24,6 @@ absorptionEmissionModels/constantAbsorptionEmission/constantAbsorptionEmission.C
absorptionEmissionModels/binary/binary.C
absorptionEmissionModels/greyMean/greyMean.C
absorptionEmissionModels/wideBand/wideBand.C
absorptionEmissionModels/greyMeanSolid/greyMeanSolid.C
/* Soot model */
sootModels/sootModel/sootModel.C

View File

@ -1,205 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
\\/ 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 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 <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "greyMeanSolid.H"
#include "addToRunTimeSelectionTable.H"
#include "unitConversion.H"
#include "extrapolatedCalculatedFvPatchFields.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
namespace radiationModels
{
namespace absorptionEmissionModels
{
defineTypeNameAndDebug(greyMeanSolid, 0);
addToRunTimeSelectionTable
(
absorptionEmissionModel,
greyMeanSolid,
dictionary
);
}
}
}
// * * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * //
Foam::tmp<Foam::scalarField>
Foam::radiationModels::absorptionEmissionModels::greyMeanSolid::X
(
const word specie
) const
{
const volScalarField& T = thermo_.T();
const volScalarField& p = thermo_.p();
tmp<scalarField> tXj(new scalarField(T.primitiveField().size(), 0.0));
scalarField& Xj = tXj.ref();
tmp<scalarField> tRhoInv(new scalarField(T.primitiveField().size(), 0.0));
scalarField& rhoInv = tRhoInv.ref();
forAll(mixture_.Y(), specieI)
{
const scalarField& Yi = mixture_.Y()[specieI];
forAll(rhoInv, iCell)
{
rhoInv[iCell] +=
Yi[iCell]/mixture_.rho(specieI, p[iCell], T[iCell]);
}
}
const scalarField& Yj = mixture_.Y(specie);
const label mySpecieI = mixture_.species()[specie];
forAll(Xj, iCell)
{
Xj[iCell] = Yj[iCell]/mixture_.rho(mySpecieI, p[iCell], T[iCell]);
}
return (Xj/rhoInv);
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::radiationModels::absorptionEmissionModels::greyMeanSolid::greyMeanSolid
(
const dictionary& dict,
const fvMesh& mesh
)
:
absorptionEmissionModel(dict, mesh),
coeffsDict_((dict.optionalSubDict(typeName + "Coeffs"))),
thermo_(mesh.lookupObject<solidPressureThermo>(basicThermo::dictName)),
speciesNames_(0),
mixture_(dynamic_cast<const basicSpecieMixture&>(thermo_)),
solidData_(mixture_.Y().size())
{
if (!isA<basicSpecieMixture>(thermo_))
{
FatalErrorInFunction
<< "Model requires a multi-component thermo package"
<< abort(FatalError);
}
label nFunc = 0;
const dictionary& functionDicts = dict.optionalSubDict(typeName + "Coeffs");
forAllConstIter(dictionary, functionDicts, iter)
{
// safety:
if (!iter().isDict())
{
continue;
}
const word& key = iter().keyword();
if (!mixture_.contains(key))
{
WarningInFunction
<< " specie: " << key << " is not found in the solid mixture"
<< nl
<< " specie is the mixture are:" << mixture_.species() << nl
<< nl << endl;
}
speciesNames_.insert(key, nFunc);
const dictionary& dict = iter().dict();
dict.lookup("absorptivity") >> solidData_[nFunc][absorptivity];
dict.lookup("emissivity") >> solidData_[nFunc][emissivity];
nFunc++;
}
}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::radiationModels::absorptionEmissionModels::greyMeanSolid::~greyMeanSolid()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField>
Foam::radiationModels::absorptionEmissionModels::greyMeanSolid::calc
(
const label propertyId
) const
{
tmp<volScalarField> ta
(
new volScalarField
(
IOobject
(
"a",
mesh().time().timeName(),
mesh(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh(),
dimensionedScalar(dimless/dimLength, 0),
extrapolatedCalculatedFvPatchVectorField::typeName
)
);
scalarField& a = ta.ref().primitiveFieldRef();
forAllConstIter(HashTable<label>, speciesNames_, iter)
{
if (mixture_.contains(iter.key()))
{
a += solidData_[iter()][propertyId]*X(iter.key());
}
}
ta.ref().correctBoundaryConditions();
return ta;
}
Foam::tmp<Foam::volScalarField>
Foam::radiationModels::absorptionEmissionModels::greyMeanSolid::eCont
(
const label bandI
) const
{
return calc(emissivity);
}
Foam::tmp<Foam::volScalarField>
Foam::radiationModels::absorptionEmissionModels::greyMeanSolid::aCont
(
const label bandI
) const
{
return calc(absorptivity);
}
// ************************************************************************* //

View File

@ -1,164 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
\\/ 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 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 <http://www.gnu.org/licenses/>.
Class
Foam::radiationModels::absorptionEmissionModels::greyMeanSolid
Description
greyMeanSolid radiation absorption and emission coefficients for solid phase
The coefficients for the species in the Look up table have to be specified
for use in moles x P [atm], i.e. (k[i] = species[i]*p*9.869231e-6).
The coefficients for CO and soot or any other added are multiplied by the
respective mass fraction being solved
All the species in the dictionary need either to be in the look-up table or
being solved. Conversely, all the species solved do not need to be included
in the calculation of the absorption coefficient
The names of the species in the absorption dictionary must match exactly the
name in the look-up table or the name of the field being solved
SourceFiles
greyMeanSolid.C
\*---------------------------------------------------------------------------*/
#ifndef greyMeanSolid_H
#define greyMeanSolid_H
#include "absorptionEmissionModel.H"
#include "solidPressureThermo.H"
#include "basicSpecieMixture.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace radiationModels
{
namespace absorptionEmissionModels
{
/*---------------------------------------------------------------------------*\
Class greyMeanSolid Declaration
\*---------------------------------------------------------------------------*/
class greyMeanSolid
:
public absorptionEmissionModel
{
private:
// Private Data
//- Enumering of radiative properties
enum radiativeProperties
{
absorptivity,
emissivity
};
//- Absorption model dictionary
dictionary coeffsDict_;
//- SLG thermo package
const solidPressureThermo& thermo_;
//- Hash table of species names
HashTable<label> speciesNames_;
//- Basic multicomponent mixture
const basicSpecieMixture& mixture_;
//- List of solid species data
List<FixedList<scalar, 2>> solidData_;
// Private Member Functions
//- Calculate the volumetric fraction of Yj
tmp<scalarField> X(const word specie) const;
//- Calculate the property mixing
tmp<volScalarField> calc(const label) const;
public:
//- Runtime type information
TypeName("greyMeanSolid");
// Constructors
//- Construct from components
greyMeanSolid
(
const dictionary& dict,
const fvMesh& mesh
);
//- Destructor
virtual ~greyMeanSolid();
// Member Functions
// Access
// Absorption coefficient
//- Absorption coefficient for continuous phase
tmp<volScalarField> aCont(const label bandI = 0) const;
// Emission coefficient
//- Emission coefficient for continuous phase
tmp<volScalarField> eCont(const label bandI = 0) const;
// Member Functions
inline bool isGrey() const
{
return true;
}
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace absorptionEmissionModels
} // End namespace radiationModels
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -142,6 +142,30 @@ Foam::heThermo<BasicThermo, MixtureType>::patchFieldProperty
}
template<class BasicThermo, class MixtureType>
Foam::UIndirectList<Foam::scalar>
Foam::heThermo<BasicThermo, MixtureType>::cellSetScalarList
(
const volScalarField& psi,
const labelList& cells
)
{
return UIndirectList<scalar>(psi, cells);
}
template<class BasicThermo, class MixtureType>
Foam::UniformField<Foam::scalar>
Foam::heThermo<BasicThermo, MixtureType>::cellSetScalarList
(
const uniformGeometricScalarField& psi,
const labelList&
)
{
return psi.primitiveField();
}
template<class BasicThermo, class MixtureType>
void Foam::heThermo<BasicThermo, MixtureType>::
heBoundaryCorrection(volScalarField& h)
@ -189,7 +213,16 @@ Foam::heThermo<BasicThermo, MixtureType>::heThermo
IOobject::NO_READ,
IOobject::NO_WRITE
),
he(this->p(), this->T_),
volScalarFieldProperty
(
"he",
dimEnergy/dimMass,
&MixtureType::cellMixture,
&MixtureType::patchFaceMixture,
&MixtureType::thermoType::HE,
this->p_,
this->T_
),
this->heBoundaryTypes(),
this->heBoundaryBaseTypes()
)
@ -222,7 +255,16 @@ Foam::heThermo<BasicThermo, MixtureType>::heThermo
IOobject::NO_READ,
IOobject::NO_WRITE
),
he(this->p(), this->T_),
volScalarFieldProperty
(
"he",
dimEnergy/dimMass,
&MixtureType::cellMixture,
&MixtureType::patchFaceMixture,
&MixtureType::thermoType::HE,
this->p_,
this->T_
),
this->heBoundaryTypes(),
this->heBoundaryBaseTypes()
)
@ -272,7 +314,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::he
&MixtureType::cellMixture,
&MixtureType::thermoType::HE,
cells,
UIndirectList<scalar>(this->p(), cells),
cellSetScalarList(this->p_, cells),
T
);
}
@ -290,7 +332,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::he
&MixtureType::patchFaceMixture,
&MixtureType::thermoType::HE,
patchi,
this->p().boundaryField()[patchi],
this->p_.boundaryField()[patchi],
T
);
}
@ -307,7 +349,7 @@ Foam::heThermo<BasicThermo, MixtureType>::hs() const
&MixtureType::cellMixture,
&MixtureType::patchFaceMixture,
&MixtureType::thermoType::Hs,
this->p(),
this->p_,
this->T_
);
}
@ -345,7 +387,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::hs
&MixtureType::cellMixture,
&MixtureType::thermoType::Hs,
cells,
UIndirectList<scalar>(this->p(), cells),
cellSetScalarList(this->p_, cells),
T
);
}
@ -363,7 +405,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::hs
&MixtureType::patchFaceMixture,
&MixtureType::thermoType::Hs,
patchi,
this->p().boundaryField()[patchi],
this->p_.boundaryField()[patchi],
T
);
}
@ -380,7 +422,7 @@ Foam::heThermo<BasicThermo, MixtureType>::ha() const
&MixtureType::cellMixture,
&MixtureType::patchFaceMixture,
&MixtureType::thermoType::Ha,
this->p(),
this->p_,
this->T_
);
}
@ -418,7 +460,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::ha
&MixtureType::cellMixture,
&MixtureType::thermoType::Ha,
cells,
UIndirectList<scalar>(this->p(), cells),
cellSetScalarList(this->p_, cells),
T
);
}
@ -436,7 +478,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::ha
&MixtureType::patchFaceMixture,
&MixtureType::thermoType::Ha,
patchi,
this->p().boundaryField()[patchi],
this->p_.boundaryField()[patchi],
T
);
}
@ -469,7 +511,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::Cp
&MixtureType::patchFaceMixture,
&MixtureType::thermoType::Cp,
patchi,
this->p().boundaryField()[patchi],
this->p_.boundaryField()[patchi],
T
);
}
@ -486,7 +528,7 @@ Foam::heThermo<BasicThermo, MixtureType>::Cp() const
&MixtureType::cellMixture,
&MixtureType::patchFaceMixture,
&MixtureType::thermoType::Cp,
this->p(),
this->p_,
this->T_
);
}
@ -505,7 +547,7 @@ Foam::heThermo<BasicThermo, MixtureType>::Cv
&MixtureType::patchFaceMixture,
&MixtureType::thermoType::Cv,
patchi,
this->p().boundaryField()[patchi],
this->p_.boundaryField()[patchi],
T
);
}
@ -522,7 +564,7 @@ Foam::heThermo<BasicThermo, MixtureType>::Cv() const
&MixtureType::cellMixture,
&MixtureType::patchFaceMixture,
&MixtureType::thermoType::Cv,
this->p(),
this->p_,
this->T_
);
}
@ -540,7 +582,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::gamma
&MixtureType::patchFaceMixture,
&MixtureType::thermoType::gamma,
patchi,
this->p().boundaryField()[patchi],
this->p_.boundaryField()[patchi],
T
);
}
@ -557,7 +599,7 @@ Foam::heThermo<BasicThermo, MixtureType>::gamma() const
&MixtureType::cellMixture,
&MixtureType::patchFaceMixture,
&MixtureType::thermoType::gamma,
this->p(),
this->p_,
this->T_
);
}
@ -575,7 +617,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::Cpv
&MixtureType::patchFaceMixture,
&MixtureType::thermoType::Cpv,
patchi,
this->p().boundaryField()[patchi],
this->p_.boundaryField()[patchi],
T
);
}
@ -592,7 +634,7 @@ Foam::heThermo<BasicThermo, MixtureType>::Cpv() const
&MixtureType::cellMixture,
&MixtureType::patchFaceMixture,
&MixtureType::thermoType::Cpv,
this->p(),
this->p_,
this->T_
);
}
@ -610,7 +652,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::CpByCpv
&MixtureType::patchFaceMixture,
&MixtureType::thermoType::CpByCpv,
patchi,
this->p().boundaryField()[patchi],
this->p_.boundaryField()[patchi],
T
);
}
@ -627,7 +669,7 @@ Foam::heThermo<BasicThermo, MixtureType>::CpByCpv() const
&MixtureType::cellMixture,
&MixtureType::patchFaceMixture,
&MixtureType::thermoType::CpByCpv,
this->p(),
this->p_,
this->T_
);
}
@ -647,7 +689,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::THE
&MixtureType::thermoType::THE,
cells,
h,
UIndirectList<scalar>(this->p(), cells),
cellSetScalarList(this->p_, cells),
T0
);
}
@ -667,7 +709,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::THE
&MixtureType::thermoType::THE,
patchi,
h,
this->p().boundaryField()[patchi],
this->p_.boundaryField()[patchi],
T0
);
}

View File

@ -36,6 +36,8 @@ SourceFiles
#define heThermo_H
#include "basicMixture.H"
#include "volFields.H"
#include "uniformGeometricFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -100,6 +102,20 @@ protected:
const Args& ... args
) const;
//- Return an indirect list of a field for the given set of cells
static UIndirectList<scalar> cellSetScalarList
(
const volScalarField& psi,
const labelList& cells
);
//- Return an indirect list of a field for the given set of cells
static UniformField<scalar> cellSetScalarList
(
const uniformGeometricScalarField& psi,
const labelList&
);
//- Correct the enthalpy/internal energy field boundaries
void heBoundaryCorrection(volScalarField& he);

View File

@ -1,5 +1,4 @@
solidThermo/solidThermo.C
solidPressureThermo/solidPressureThermo.C
heSolidThermo/heSolidThermos.C
solidThermo/solidThermos.C
LIB = $(FOAM_LIBBIN)/libsolidThermo

View File

@ -29,8 +29,8 @@ Description
\*---------------------------------------------------------------------------*/
#ifndef makeHeSolidThermo_H
#define makeHeSolidThermo_H
#ifndef makeSolidThermo_H
#define makeSolidThermo_H
#include "basicThermo.H"
#include "addToRunTimeSelectionTable.H"

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -31,10 +31,10 @@ License
template<class BasicSolidThermo, class MixtureType>
void Foam::heSolidThermo<BasicSolidThermo, MixtureType>::calculate()
{
scalarField& TCells = this->T_.primitiveFieldRef();
const scalarField& hCells = this->he_;
const scalarField& pCells = this->p_;
const auto& pCells = this->p_;
scalarField& TCells = this->T_.primitiveFieldRef();
scalarField& rhoCells = this->rho_.primitiveFieldRef();
scalarField& alphaCells = this->alpha_.primitiveFieldRef();
@ -60,8 +60,7 @@ void Foam::heSolidThermo<BasicSolidThermo, MixtureType>::calculate()
/mixture_.Cpv(pCells[celli], TCells[celli]);
}
volScalarField::Boundary& pBf =
this->p_.boundaryFieldRef();
const auto& pBf = this->p_.boundaryField();
volScalarField::Boundary& TBf =
this->T_.boundaryFieldRef();
@ -77,7 +76,7 @@ void Foam::heSolidThermo<BasicSolidThermo, MixtureType>::calculate()
forAll(this->T_.boundaryField(), patchi)
{
fvPatchScalarField& pp = pBf[patchi];
const auto& pp = pBf[patchi];
fvPatchScalarField& pT = TBf[patchi];
fvPatchScalarField& prho = rhoBf[patchi];
fvPatchScalarField& phe = heBf[patchi];
@ -211,10 +210,11 @@ Foam::heSolidThermo<BasicSolidThermo, MixtureType>::Kappa() const
)
);
const auto& pCells = this->p_;
const scalarField& TCells = this->T_;
volVectorField& Kappa = tKappa.ref();
vectorField& KappaCells = Kappa.primitiveFieldRef();
const scalarField& TCells = this->T_;
const scalarField& pCells = this->p_;
forAll(KappaCells, celli)
{
@ -231,9 +231,10 @@ Foam::heSolidThermo<BasicSolidThermo, MixtureType>::Kappa() const
forAll(KappaBf, patchi)
{
vectorField& Kappap = KappaBf[patchi];
const auto& pp = this->p_.boundaryField()[patchi];
const scalarField& pT = this->T_.boundaryField()[patchi];
const scalarField& pp = this->p_.boundaryField()[patchi];
vectorField& Kappap = KappaBf[patchi];
forAll(Kappap, facei)
{
@ -259,10 +260,10 @@ Foam::heSolidThermo<BasicSolidThermo, MixtureType>::Kappa
const label patchi
) const
{
const scalarField& pp = this->p_.boundaryField()[patchi];
const auto& pp = this->p_.boundaryField()[patchi];
const scalarField& Tp = this->T_.boundaryField()[patchi];
tmp<vectorField> tKappa(new vectorField(pp.size()));
tmp<vectorField> tKappa(new vectorField(Tp.size()));
vectorField& Kappap = tKappa.ref();
forAll(Tp, facei)
@ -270,11 +271,11 @@ Foam::heSolidThermo<BasicSolidThermo, MixtureType>::Kappa
Kappap[facei] =
this->patchFaceVolMixture
(
pp[facei],
pp[patchi],
Tp[facei],
patchi,
facei
).Kappa(pp[facei], Tp[facei]);
).Kappa(pp[patchi], Tp[facei]);
}
return tKappa;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -26,7 +26,6 @@ License
#include "solidThermo.H"
#include "fvMesh.H"
/* * * * * * * * * * * * * * * private static data * * * * * * * * * * * * * */
namespace Foam
@ -46,6 +45,18 @@ Foam::solidThermo::solidThermo
)
:
basicThermo(mesh, phaseName),
p_
(
IOobject
(
phasePropertyName("p"),
mesh.time().timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
dimensionedScalar(phasePropertyName("p"), dimPressure, NaN)
),
rho_
(
IOobject
@ -70,6 +81,18 @@ Foam::solidThermo::solidThermo
)
:
basicThermo(mesh, dict, phaseName),
p_
(
IOobject
(
phasePropertyName("p"),
mesh.time().timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
dimensionedScalar(phasePropertyName("p"), dimPressure, NaN)
),
rho_
(
IOobject

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -36,6 +36,7 @@ SourceFiles
#define solidThermo_H
#include "basicThermo.H"
#include "uniformGeometricFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -55,6 +56,13 @@ protected:
// Protected data
//- Pressure [Pa]
// Note: This value should never be used. Solid thermo should only be
// instantiated with thermo models that do not depend on pressure.
// This uniform field takes a value of NaN, so that if any thermo
// models that do depend on pressure are used then the code will exit.
uniformGeometricScalarField p_;
//- Density field [kg/m^3]
volScalarField rho_;

View File

@ -23,24 +23,18 @@ License
\*---------------------------------------------------------------------------*/
#include "solidPressureThermo.H"
#include "solidThermo.H"
#include "heSolidThermo.H"
#include "pureMixture.H"
#include "forSolids.H"
#include "makeHeSolidThermo.H"
#include "makeSolidThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/* * * * * * * * * * * * * * * * * Enthalpy-based * * * * * * * * * * * * * */
forSolids(makeSolidThermos, solidPressureThermo, heSolidThermo, pureMixture);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
forSolids(makeSolidThermos, solidThermo, heSolidThermo, pureMixture);
}
// ************************************************************************* //

View File

@ -1,31 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 1e6;
boundaryField
{
".*"
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -1,34 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "$FOAM_CASE/constant/initialConditions"
dimensions [1 -1 -2 0 0 0 0];
internalField uniform $pInitial;
boundaryField
{
".*"
{
type calculated;
value uniform $pInitial;
}
#includeEtc "caseDicts/setConstraintTypes"
}
// ************************************************************************* //

View File

@ -1,33 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0/heater";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
".*"
{
type calculated;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -1,33 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0/metal";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
".*"
{
type calculated;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -1,34 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0/solid";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [ 1 -1 -2 0 0 0 0 ];
internalField uniform 1e6;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
".*"
{
type calculated;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -1,33 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0/solid";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
".*"
{
type calculated;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -1,53 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
topSurface
{
type calculated;
value uniform 0;
}
bottomSurface
{
type calculated;
value uniform 0;
}
fixedEnd
{
type calculated;
value uniform 0;
}
tractionEnd
{
type calculated;
value uniform 0;
}
defaultFaces
{
type empty;
}
}
// ************************************************************************* //