mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: particleForces. Not caching gradH field, looking up HdotGradH
field directly. Renaming Ftot to accelTot to remind that the functions return accelerations.
This commit is contained in:
@ -43,7 +43,6 @@ Foam::particleForces::particleForces
|
|||||||
dict_(dict.subDict("particleForces")),
|
dict_(dict.subDict("particleForces")),
|
||||||
g_(g),
|
g_(g),
|
||||||
gradUPtr_(NULL),
|
gradUPtr_(NULL),
|
||||||
gradHPtr_(NULL),
|
|
||||||
gravity_(dict_.lookup("gravity")),
|
gravity_(dict_.lookup("gravity")),
|
||||||
virtualMass_(dict_.lookup("virtualMass")),
|
virtualMass_(dict_.lookup("virtualMass")),
|
||||||
Cvm_(0.0),
|
Cvm_(0.0),
|
||||||
@ -51,7 +50,7 @@ Foam::particleForces::particleForces
|
|||||||
paramagnetic_(dict_.lookup("paramagnetic")),
|
paramagnetic_(dict_.lookup("paramagnetic")),
|
||||||
magneticSusceptibility_(0.0),
|
magneticSusceptibility_(0.0),
|
||||||
UName_(dict_.lookupOrDefault<word>("U", "U")),
|
UName_(dict_.lookupOrDefault<word>("U", "U")),
|
||||||
HName_(dict_.lookupOrDefault<word>("H", "H"))
|
HdotGradHName_(dict_.lookupOrDefault<word>("HdotGradH", "HdotGradH"))
|
||||||
{
|
{
|
||||||
if (virtualMass_)
|
if (virtualMass_)
|
||||||
{
|
{
|
||||||
@ -71,7 +70,6 @@ Foam::particleForces::particleForces(const particleForces& f)
|
|||||||
dict_(f.dict_),
|
dict_(f.dict_),
|
||||||
g_(f.g_),
|
g_(f.g_),
|
||||||
gradUPtr_(f.gradUPtr_),
|
gradUPtr_(f.gradUPtr_),
|
||||||
gradHPtr_(f.gradHPtr_),
|
|
||||||
gravity_(f.gravity_),
|
gravity_(f.gravity_),
|
||||||
virtualMass_(f.virtualMass_),
|
virtualMass_(f.virtualMass_),
|
||||||
Cvm_(f.Cvm_),
|
Cvm_(f.Cvm_),
|
||||||
@ -79,7 +77,7 @@ Foam::particleForces::particleForces(const particleForces& f)
|
|||||||
paramagnetic_(f.paramagnetic_),
|
paramagnetic_(f.paramagnetic_),
|
||||||
magneticSusceptibility_(f.magneticSusceptibility_),
|
magneticSusceptibility_(f.magneticSusceptibility_),
|
||||||
UName_(f.UName_),
|
UName_(f.UName_),
|
||||||
HName_(f.HName_)
|
HdotGradHName_(f.HdotGradHName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -147,9 +145,9 @@ const Foam::word& Foam::particleForces::UName() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const Foam::word& Foam::particleForces::HName() const
|
const Foam::word& Foam::particleForces::HdotGradHName() const
|
||||||
{
|
{
|
||||||
return HName_;
|
return HdotGradHName_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -168,20 +166,6 @@ void Foam::particleForces::cacheFields(const bool store)
|
|||||||
gradUPtr_ = NULL;
|
gradUPtr_ = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (store && paramagnetic_)
|
|
||||||
{
|
|
||||||
const volVectorField& H = mesh_.lookupObject<volVectorField>(HName_);
|
|
||||||
gradHPtr_ = fvc::grad(H).ptr();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (gradHPtr_)
|
|
||||||
{
|
|
||||||
delete gradHPtr_;
|
|
||||||
gradHPtr_ = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -196,7 +180,7 @@ Foam::vector Foam::particleForces::calcCoupled
|
|||||||
const scalar d
|
const scalar d
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
vector Ftot = vector::zero;
|
vector accelTot = vector::zero;
|
||||||
|
|
||||||
// Virtual mass force
|
// Virtual mass force
|
||||||
if (virtualMass_)
|
if (virtualMass_)
|
||||||
@ -205,17 +189,17 @@ Foam::vector Foam::particleForces::calcCoupled
|
|||||||
(
|
(
|
||||||
"Foam::particleForces::calcCoupled(...) - virtual mass force"
|
"Foam::particleForces::calcCoupled(...) - virtual mass force"
|
||||||
);
|
);
|
||||||
// Ftot += Cvm_*rhoc/rho*d(Uc - U)/dt;
|
// accelTot += Cvm_*rhoc/rho*d(Uc - U)/dt;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pressure gradient force
|
// Pressure gradient force
|
||||||
if (pressureGradient_)
|
if (pressureGradient_)
|
||||||
{
|
{
|
||||||
const volTensorField& gradU = *gradUPtr_;
|
const volTensorField& gradU = *gradUPtr_;
|
||||||
Ftot += rhoc/rho*(U & gradU[cellI]);
|
accelTot += rhoc/rho*(U & gradU[cellI]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Ftot;
|
return accelTot;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -230,26 +214,27 @@ Foam::vector Foam::particleForces::calcNonCoupled
|
|||||||
const scalar d
|
const scalar d
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
vector Ftot = vector::zero;
|
vector accelTot = vector::zero;
|
||||||
|
|
||||||
// Gravity force
|
// Gravity force
|
||||||
if (gravity_)
|
if (gravity_)
|
||||||
{
|
{
|
||||||
Ftot += g_*(1.0 - rhoc/rho);
|
accelTot += g_*(1.0 - rhoc/rho);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Magnetic field force
|
// Magnetic field force
|
||||||
|
|
||||||
if (paramagnetic_)
|
if (paramagnetic_)
|
||||||
{
|
{
|
||||||
const volVectorField& H = mesh_.lookupObject<volVectorField>(HName_);
|
const volVectorField& HdotGradH = mesh_.lookupObject<volVectorField>
|
||||||
|
(
|
||||||
|
HdotGradHName_
|
||||||
|
);
|
||||||
|
|
||||||
const volTensorField& gradH = *gradHPtr_;
|
accelTot +=
|
||||||
|
|
||||||
Ftot +=
|
|
||||||
3.0*constant::electromagnetic::mu0.value()/rho
|
3.0*constant::electromagnetic::mu0.value()/rho
|
||||||
*magneticSusceptibility_/(magneticSusceptibility_ + 3)
|
*magneticSusceptibility_/(magneticSusceptibility_ + 3)
|
||||||
*(H[cellI] & gradH[cellI]);
|
*HdotGradH[cellI];
|
||||||
|
|
||||||
// force is:
|
// force is:
|
||||||
|
|
||||||
@ -257,14 +242,14 @@ Foam::vector Foam::particleForces::calcNonCoupled
|
|||||||
// *constant::mathematical::pi
|
// *constant::mathematical::pi
|
||||||
// *constant::electromagnetic::mu0.value()
|
// *constant::electromagnetic::mu0.value()
|
||||||
// *pow3(d/2)
|
// *pow3(d/2)
|
||||||
// *magneticSusceptibility/(magneticSusceptibility + 3)
|
// *magneticSusceptibility_/(magneticSusceptibility_ + 3)
|
||||||
// *(H[cellI] & gradH[cellI]);
|
// *HdotGradH[cellI];
|
||||||
|
|
||||||
// which is divided by mass ((4/3)*pi*r^3*rho) to produce
|
// which is divided by mass ((4/3)*pi*r^3*rho) to produce
|
||||||
// acceleration
|
// acceleration
|
||||||
}
|
}
|
||||||
|
|
||||||
return Ftot;
|
return accelTot;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -69,9 +69,6 @@ class particleForces
|
|||||||
//- Velocity gradient field
|
//- Velocity gradient field
|
||||||
const volTensorField* gradUPtr_;
|
const volTensorField* gradUPtr_;
|
||||||
|
|
||||||
//- Magnetic field strength gradient field
|
|
||||||
const volTensorField* gradHPtr_;
|
|
||||||
|
|
||||||
|
|
||||||
// Forces to include in particle motion evaluation
|
// Forces to include in particle motion evaluation
|
||||||
|
|
||||||
@ -99,8 +96,9 @@ class particleForces
|
|||||||
//- Name of velocity field - default = "U"
|
//- Name of velocity field - default = "U"
|
||||||
const word UName_;
|
const word UName_;
|
||||||
|
|
||||||
//- Name of magnetic field strength field - default = "H"
|
//- Name of paramagnetic field strength field - default =
|
||||||
const word HName_;
|
// "HdotGradH"
|
||||||
|
const word HdotGradHName_;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -154,8 +152,8 @@ public:
|
|||||||
//- Return magnetic susceptibility
|
//- Return magnetic susceptibility
|
||||||
scalar magneticSusceptibility() const;
|
scalar magneticSusceptibility() const;
|
||||||
|
|
||||||
//- Return name of velocity field
|
//- Return name of paramagnetic field strength field
|
||||||
const word& HName() const;
|
const word& HdotGradHName() const;
|
||||||
|
|
||||||
|
|
||||||
// Evaluation
|
// Evaluation
|
||||||
|
|||||||
Reference in New Issue
Block a user