mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Bug fixes to the IO.
This commit is contained in:
@ -158,7 +158,7 @@ public:
|
||||
//- Return velocity
|
||||
inline const vector& U() const;
|
||||
|
||||
//- The nearest distance to a wall that
|
||||
//- The nearest distance to a wall that
|
||||
// the particle can be in the n direction
|
||||
inline scalar wallImpactDistance(const vector& n) const;
|
||||
|
||||
@ -226,6 +226,14 @@ public:
|
||||
const vector& separation
|
||||
);
|
||||
|
||||
|
||||
// I-O
|
||||
|
||||
static void readFields(Cloud<solidParticle>& c);
|
||||
|
||||
static void writeFields(const Cloud<solidParticle>& c);
|
||||
|
||||
|
||||
// Ostream Operator
|
||||
|
||||
friend Ostream& operator<<(Ostream&, const solidParticle&);
|
||||
@ -238,12 +246,6 @@ inline bool contiguous<solidParticle>()
|
||||
return true;
|
||||
}
|
||||
|
||||
template<>
|
||||
void Cloud<solidParticle>::readFields();
|
||||
|
||||
template<>
|
||||
void Cloud<solidParticle>::writeFields() const;
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
|
||||
@ -58,7 +58,9 @@ Foam::solidParticleCloud::solidParticleCloud(const fvMesh& mesh)
|
||||
rhop_(dimensionedScalar(particleProperties_.lookup("rhop")).value()),
|
||||
e_(dimensionedScalar(particleProperties_.lookup("e")).value()),
|
||||
mu_(dimensionedScalar(particleProperties_.lookup("mu")).value())
|
||||
{}
|
||||
{
|
||||
solidParticle::readFields(*this);
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
@ -82,4 +84,10 @@ void Foam::solidParticleCloud::move(const dimensionedVector& g)
|
||||
}
|
||||
|
||||
|
||||
void Foam::solidParticleCloud::writeFields() const
|
||||
{
|
||||
solidParticle::writeFields(*this);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -97,13 +97,17 @@ public:
|
||||
inline scalar mu() const;
|
||||
|
||||
|
||||
// Check
|
||||
|
||||
// Edit
|
||||
|
||||
//- Move the particles under the influence of the given
|
||||
// gravitational acceleration
|
||||
void move(const dimensionedVector& g);
|
||||
//- Move the particles under the influence of the given
|
||||
// gravitational acceleration
|
||||
void move(const dimensionedVector& g);
|
||||
|
||||
|
||||
// I-O
|
||||
|
||||
//- Write fields
|
||||
void writeFields() const;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -36,7 +36,7 @@ Foam::solidParticle::solidParticle
|
||||
bool readFields
|
||||
)
|
||||
:
|
||||
Particle<solidParticle>(cloud, is)
|
||||
Particle<solidParticle>(cloud, is, readFields)
|
||||
{
|
||||
if (readFields)
|
||||
{
|
||||
@ -60,20 +60,20 @@ Foam::solidParticle::solidParticle
|
||||
}
|
||||
|
||||
|
||||
namespace Foam
|
||||
void Foam::solidParticle::readFields(Cloud<solidParticle>& c)
|
||||
{
|
||||
if (!c.size())
|
||||
{
|
||||
return;
|
||||
}
|
||||
IOField<scalar> d(c.fieldIOobject("d"));
|
||||
c.checkFieldIOobject(c, d);
|
||||
|
||||
template<>
|
||||
void Cloud<solidParticle>::readFields()
|
||||
{
|
||||
IOField<scalar> d(fieldIOobject("d"));
|
||||
checkFieldIOobject(*this, d);
|
||||
|
||||
IOField<vector> U(fieldIOobject("U"));
|
||||
checkFieldIOobject(*this, U);
|
||||
IOField<vector> U(c.fieldIOobject("U"));
|
||||
c.checkFieldIOobject(c, U);
|
||||
|
||||
label i = 0;
|
||||
forAllIter(Cloud<solidParticle>::iterator, *this, iter)
|
||||
forAllIter(Cloud<solidParticle>::iterator, c, iter)
|
||||
{
|
||||
solidParticle& p = iter();
|
||||
|
||||
@ -84,16 +84,17 @@ void Cloud<solidParticle>::readFields()
|
||||
}
|
||||
|
||||
|
||||
template<>
|
||||
void Cloud<solidParticle>::writeFields() const
|
||||
void Foam::solidParticle::writeFields(const Cloud<solidParticle>& c)
|
||||
{
|
||||
label np = size();
|
||||
Particle<solidParticle>::writeFields(c);
|
||||
|
||||
IOField<scalar> d(fieldIOobject("d"), np);
|
||||
IOField<vector> U(fieldIOobject("U"), np);
|
||||
label np = c.size();
|
||||
|
||||
IOField<scalar> d(c.fieldIOobject("d"), np);
|
||||
IOField<vector> U(c.fieldIOobject("U"), np);
|
||||
|
||||
label i = 0;
|
||||
forAllConstIter(Cloud<solidParticle>, *this, iter)
|
||||
forAllConstIter(Cloud<solidParticle>, c, iter)
|
||||
{
|
||||
const solidParticle& p = iter();
|
||||
|
||||
@ -106,8 +107,6 @@ void Cloud<solidParticle>::writeFields() const
|
||||
U.write();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
|
||||
|
||||
|
||||
Reference in New Issue
Block a user