mirror of
https://github.com/OpenFOAM/OpenFOAM-6.git
synced 2025-12-08 06:57:46 +00:00
fvDOM: check mesh is on x-y plane for 2D cases and in x-direction for 1D cases
This commit is contained in:
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -49,7 +49,8 @@ namespace Foam
|
|||||||
|
|
||||||
void Foam::radiation::fvDOM::initialise()
|
void Foam::radiation::fvDOM::initialise()
|
||||||
{
|
{
|
||||||
if (mesh_.nSolutionD() == 3) //3D
|
// 3D
|
||||||
|
if (mesh_.nSolutionD() == 3)
|
||||||
{
|
{
|
||||||
nRay_ = 4*nPhi_*nTheta_;
|
nRay_ = 4*nPhi_*nTheta_;
|
||||||
IRay_.setSize(nRay_);
|
IRay_.setSize(nRay_);
|
||||||
@ -83,69 +84,84 @@ void Foam::radiation::fvDOM::initialise()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 2D
|
||||||
|
else if (mesh_.nSolutionD() == 2)
|
||||||
|
{
|
||||||
|
// Currently 2D solution is limited to the x-y plane
|
||||||
|
if (mesh_.solutionD()[vector::Z] != -1)
|
||||||
|
{
|
||||||
|
FatalErrorIn("fvDOM::initialise()")
|
||||||
|
<< "Currently 2D solution is limited to the x-y plane"
|
||||||
|
<< exit(FatalError);
|
||||||
|
}
|
||||||
|
|
||||||
|
scalar thetai = piByTwo;
|
||||||
|
scalar deltaTheta = pi;
|
||||||
|
nRay_ = 4*nPhi_;
|
||||||
|
IRay_.setSize(nRay_);
|
||||||
|
scalar deltaPhi = pi/(2.0*nPhi_);
|
||||||
|
label i = 0;
|
||||||
|
for (label m = 1; m <= 4*nPhi_; m++)
|
||||||
|
{
|
||||||
|
scalar phii = (2.0*m - 1.0)*deltaPhi/2.0;
|
||||||
|
IRay_.set
|
||||||
|
(
|
||||||
|
i,
|
||||||
|
new radiativeIntensityRay
|
||||||
|
(
|
||||||
|
*this,
|
||||||
|
mesh_,
|
||||||
|
phii,
|
||||||
|
thetai,
|
||||||
|
deltaPhi,
|
||||||
|
deltaTheta,
|
||||||
|
nLambda_,
|
||||||
|
absorptionEmission_,
|
||||||
|
blackBody_,
|
||||||
|
i
|
||||||
|
)
|
||||||
|
);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 1D
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (mesh_.nSolutionD() == 2) //2D (X & Y)
|
// Currently 1D solution is limited to the x-direction
|
||||||
|
if (mesh_.solutionD()[vector::X] != 1)
|
||||||
{
|
{
|
||||||
scalar thetai = piByTwo;
|
FatalErrorIn("fvDOM::initialise()")
|
||||||
scalar deltaTheta = pi;
|
<< "Currently 1D solution is limited to the x-direction"
|
||||||
nRay_ = 4*nPhi_;
|
<< exit(FatalError);
|
||||||
IRay_.setSize(nRay_);
|
|
||||||
scalar deltaPhi = pi/(2.0*nPhi_);
|
|
||||||
label i = 0;
|
|
||||||
for (label m = 1; m <= 4*nPhi_; m++)
|
|
||||||
{
|
|
||||||
scalar phii = (2.0*m - 1.0)*deltaPhi/2.0;
|
|
||||||
IRay_.set
|
|
||||||
(
|
|
||||||
i,
|
|
||||||
new radiativeIntensityRay
|
|
||||||
(
|
|
||||||
*this,
|
|
||||||
mesh_,
|
|
||||||
phii,
|
|
||||||
thetai,
|
|
||||||
deltaPhi,
|
|
||||||
deltaTheta,
|
|
||||||
nLambda_,
|
|
||||||
absorptionEmission_,
|
|
||||||
blackBody_,
|
|
||||||
i
|
|
||||||
)
|
|
||||||
);
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else //1D (X)
|
|
||||||
|
scalar thetai = piByTwo;
|
||||||
|
scalar deltaTheta = pi;
|
||||||
|
nRay_ = 2;
|
||||||
|
IRay_.setSize(nRay_);
|
||||||
|
scalar deltaPhi = pi;
|
||||||
|
label i = 0;
|
||||||
|
for (label m = 1; m <= 2; m++)
|
||||||
{
|
{
|
||||||
scalar thetai = piByTwo;
|
scalar phii = (2.0*m - 1.0)*deltaPhi/2.0;
|
||||||
scalar deltaTheta = pi;
|
IRay_.set
|
||||||
nRay_ = 2;
|
(
|
||||||
IRay_.setSize(nRay_);
|
i,
|
||||||
scalar deltaPhi = pi;
|
new radiativeIntensityRay
|
||||||
label i = 0;
|
|
||||||
for (label m = 1; m <= 2; m++)
|
|
||||||
{
|
|
||||||
scalar phii = (2.0*m - 1.0)*deltaPhi/2.0;
|
|
||||||
IRay_.set
|
|
||||||
(
|
(
|
||||||
i,
|
*this,
|
||||||
new radiativeIntensityRay
|
mesh_,
|
||||||
(
|
phii,
|
||||||
*this,
|
thetai,
|
||||||
mesh_,
|
deltaPhi,
|
||||||
phii,
|
deltaTheta,
|
||||||
thetai,
|
nLambda_,
|
||||||
deltaPhi,
|
absorptionEmission_,
|
||||||
deltaTheta,
|
blackBody_,
|
||||||
nLambda_,
|
i
|
||||||
absorptionEmission_,
|
)
|
||||||
blackBody_,
|
);
|
||||||
i
|
i++;
|
||||||
)
|
|
||||||
);
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -388,6 +404,7 @@ Foam::radiation::fvDOM::fvDOM
|
|||||||
initialise();
|
initialise();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
Foam::radiation::fvDOM::~fvDOM()
|
Foam::radiation::fvDOM::~fvDOM()
|
||||||
|
|||||||
Reference in New Issue
Block a user