updating local lagrangian updates

This commit is contained in:
andy
2008-05-06 11:48:51 +01:00
parent 617c8e3e5b
commit 8ff2789ac0
15 changed files with 165 additions and 401 deletions

View File

@ -298,26 +298,29 @@ void Foam::KinematicCloud<ParcelType>::resetSourceTerms()
template<class ParcelType>
void Foam::KinematicCloud<ParcelType>::evolve()
{
autoPtr<interpolation<scalar> > rhoInterpolator = interpolation<scalar>::New
(
interpolationSchemes_,
vpi_,
rho_
);
autoPtr<interpolation<scalar> > rhoInterpolator =
interpolation<scalar>::New
(
interpolationSchemes_,
vpi_,
rho_
);
autoPtr<interpolation<vector> > UInterpolator = interpolation<vector>::New
(
interpolationSchemes_,
vpi_,
U_
);
autoPtr<interpolation<vector> > UInterpolator =
interpolation<vector>::New
(
interpolationSchemes_,
vpi_,
U_
);
autoPtr<interpolation<scalar> > muInterpolator = interpolation<scalar>::New
(
interpolationSchemes_,
vpi_,
mu_
);
autoPtr<interpolation<scalar> > muInterpolator =
interpolation<scalar>::New
(
interpolationSchemes_,
vpi_,
mu_
);
typename ParcelType::trackData td
(

View File

@ -244,6 +244,25 @@ protected:
const scalar pVolume
);
//- Inject more parcels
template<class TrackingData>
void inject(TrackingData& td);
//- Inject parcel if it is valid - delete otherwise
template<class TrackingData>
void injectParcel
(
TrackingData& td,
ParcelType* p
);
//- Move the parcels
template<class TrackingData>
void move(TrackingData& td);
//- Post-injection checks
void postInjectCheck();
public:
@ -264,7 +283,7 @@ public:
);
// Destructors
// Destructor
virtual ~KinematicCloud();
@ -375,9 +394,6 @@ public:
// Check
//- Post-injection checks
void postInjectCheck();
//- Total mass injected
inline const scalar massInjected() const;
@ -411,35 +427,13 @@ public:
inline const tmp<volScalarField> alpha() const;
// Edit
// Cloud evolution functions
//- Reset the spray source terms
void resetSourceTerms();
//- Evolve the spray (move, inject)
void evolve();
//- Move the parcels
template<class TrackingData>
void move
(
TrackingData& td
);
//- Inject parcel if it is valid - delete otherwise
template<class TrackingData>
void injectParcel
(
TrackingData& td,
ParcelType* p
);
//- Inject more parcels
template<class TrackingData>
void inject
(
TrackingData& td
);
};

View File

@ -185,22 +185,7 @@ void Foam::ReactingCloud<ParcelType>::evolve()
inject(td);
move(td);
}
template<class ParcelType>
template<class TrackingData>
void Foam::ReactingCloud<ParcelType>::move
(
TrackingData& td
)
{
if (this->coupled())
{
resetSourceTerms();
}
Cloud<ParcelType>::move(td);
this->move(td);
}
@ -226,7 +211,7 @@ void Foam::ReactingCloud<ParcelType>::inject
// Return if no parcels are required
if (!nParcels)
{
postInjectCheck();
this->postInjectCheck();
return;
}
@ -322,11 +307,11 @@ void Foam::ReactingCloud<ParcelType>::inject
pPtr->stepFraction() = (this->db().time().deltaT().value() - dt)
/this->db().time().deltaT().value();
injectParcel(td, pPtr);
this->injectParcel(td, pPtr);
}
}
postInjectCheck();
this->postInjectCheck();
if (debug)
{
@ -335,23 +320,4 @@ void Foam::ReactingCloud<ParcelType>::inject
}
template<class ParcelType>
template<class TrackingData>
void Foam::ReactingCloud<ParcelType>::injectParcel
(
TrackingData& td,
ParcelType* p
)
{
ThermoCloud<ParcelType>::injectParcel(td, p);
}
template<class ParcelType>
void Foam::ReactingCloud<ParcelType>::postInjectCheck()
{
ThermoCloud<ParcelType>::postInjectCheck();
}
// ************************************************************************* //

View File

@ -114,6 +114,13 @@ class ReactingCloud
void operator=(const ReactingCloud&);
protected:
//- Inject more parcels
template<class TrackingData>
void inject(TrackingData& td);
public:
//- Runtime type information
@ -135,7 +142,7 @@ public:
);
// Destructors
// Destructor
virtual ~ReactingCloud();
@ -192,41 +199,13 @@ public:
Srho1() const;
// Check
//- Post-injection checks
void postInjectCheck();
// Edit
// Cloud evolution functions
//- Reset the spray source terms
void resetSourceTerms();
//- Evolve the spray (move, inject)
void evolve();
//- Move the parcels
template<class TrackingData>
void move
(
TrackingData& td
);
//- Inject parcel if it is valid - delete otherwise
template<class TrackingData>
void injectParcel
(
TrackingData& td,
ParcelType* p
);
//- Inject more parcels
template<class TrackingData>
void inject
(
TrackingData& td
);
};

View File

@ -176,22 +176,7 @@ void Foam::ThermoCloud<ParcelType>::evolve()
inject(td);
move(td);
}
template<class ParcelType>
template<class TrackingData>
void Foam::ThermoCloud<ParcelType>::move
(
TrackingData& td
)
{
if (this->coupled())
{
resetSourceTerms();
}
Cloud<ParcelType>::move(td);
this->move(td);
}
@ -207,23 +192,4 @@ void Foam::ThermoCloud<ParcelType>::inject
}
template<class ParcelType>
template<class TrackingData>
void Foam::ThermoCloud<ParcelType>::injectParcel
(
TrackingData& td,
ParcelType* p
)
{
KinematicCloud<ParcelType>::injectParcel(td, p);
}
template<class ParcelType>
void Foam::ThermoCloud<ParcelType>::postInjectCheck()
{
KinematicCloud<ParcelType>::postInjectCheck();
}
// ************************************************************************* //

View File

@ -116,6 +116,13 @@ class ThermoCloud
void operator=(const ThermoCloud&);
protected:
//- Inject more parcels
template<class TrackingData>
void inject(TrackingData& td);
public:
//- Runtime type information
@ -136,7 +143,7 @@ public:
);
// Destructors
// Destructor
virtual ~ThermoCloud();
@ -200,48 +207,13 @@ public:
inline tmp<volScalarField> sigmap() const;
// Check
//- Post-injection checks
void postInjectCheck();
// Edit
//- Reset the spray source terms
void resetSourceTerms();
// Cloud evolution functions
//- Evolve the spray (move, inject)
void evolve();
// Tracking
//- Move the particles under the influence of the given
// gravitational acceleration
template<class TrackingData>
void move
(
TrackingData& td
);
// Injection
//- Inject parcel if it is valid - delete otherwise
template<class TrackingData>
void injectParcel
(
TrackingData& td,
ParcelType* p
);
//- Inject more parcels
template<class TrackingData>
void inject
(
TrackingData& td
);
//- Reset the spray source terms
void resetSourceTerms();
};

View File

@ -60,34 +60,9 @@ Foam::basicKinematicCloud::~basicKinematicCloud()
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void Foam::basicKinematicCloud::evolve()
{
KinematicCloud<basicKinematicParcel>::evolve();
}
void Foam::basicKinematicCloud::move
(
KinematicParcel<basicKinematicParcel>::trackData& td
)
{
KinematicCloud<basicKinematicParcel>::move(td);
}
void Foam::basicKinematicCloud::inject
(
KinematicParcel<basicKinematicParcel>::trackData& td
)
{
KinematicCloud<basicKinematicParcel>::inject(td);
}
void Foam::basicKinematicCloud::writeFields() const
{
basicKinematicParcel::writeFields(*this);
}
// ************************************************************************* //

View File

@ -82,35 +82,15 @@ public:
);
// Destructors
//- Destructor
~basicKinematicCloud();
// Member functions
// Edit
//- Evolve the spray (move, inject)
void evolve();
//- Move the parcels
void move
(
KinematicParcel<basicKinematicParcel>::trackData& td
);
//- Inject more parcels
void inject
(
KinematicParcel<basicKinematicParcel>::trackData& td
);
// I-O
//- Write fields
void writeFields() const;
//- Write fields
void writeFields() const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -62,33 +62,14 @@ Foam::basicReactingCloud::basicReactingCloud
}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::basicReactingCloud::~basicReactingCloud()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void Foam::basicReactingCloud::evolve()
{
ReactingCloud<basicReactingParcel>::evolve();
}
void Foam::basicReactingCloud::move
(
ReactingParcel<basicReactingParcel>::trackData& td
)
{
ReactingCloud<basicReactingParcel>::move(td);
}
void Foam::basicReactingCloud::inject
(
ReactingParcel<basicReactingParcel>::trackData& td
)
{
ReactingCloud<basicReactingParcel>::inject(td);
}
void Foam::basicReactingCloud::writeFields() const
{
basicReactingParcel::writeFields(*this);

View File

@ -66,6 +66,7 @@ public:
//- Runtime type information
TypeName("basicReactingCloud");
// Constructors
//- Construct given carrier gas fields
@ -81,30 +82,15 @@ public:
);
//- Destructor
~basicReactingCloud();
// Member Functions
// Edit
//- Evolve the spray (move, inject)
void evolve();
//- Move the parcels
void move
(
ReactingParcel<basicReactingParcel>::trackData& td
);
//- Inject more parcels
void inject
(
ReactingParcel<basicReactingParcel>::trackData& td
);
// I-O
//- Write fields
void writeFields() const;
//- Write fields
void writeFields() const;
};

View File

@ -52,33 +52,14 @@ Foam::basicThermoCloud::basicThermoCloud
}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::basicThermoCloud::~basicThermoCloud()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void Foam::basicThermoCloud::evolve()
{
ThermoCloud<basicThermoParcel>::evolve();
}
void Foam::basicThermoCloud::move
(
ThermoParcel<basicThermoParcel>::trackData& td
)
{
// Move the parcels
ThermoCloud<basicThermoParcel>::move(td);
}
void Foam::basicThermoCloud::inject
(
ThermoParcel<basicThermoParcel>::trackData& td
)
{
ThermoCloud<basicThermoParcel>::inject(td);
}
void Foam::basicThermoCloud::writeFields() const
{
basicThermoParcel::writeFields(*this);

View File

@ -84,30 +84,15 @@ public:
);
//- Destructor
~basicThermoCloud();
// Member Functions
// Edit
//- Evolve the spray (move, inject)
void evolve();
//- Move the parcels
void move
(
ThermoParcel<basicThermoParcel>::trackData& td
);
//- Inject more parcels
void inject
(
ThermoParcel<basicThermoParcel>::trackData& td
);
// I-O
//- Write fields
void writeFields() const;
//- Write fields
void writeFields() const;
};

View File

@ -96,17 +96,14 @@ public:
public:
//- Constructor
constantProperties
(
const dictionary& dict
);
constantProperties(const dictionary& dict);
// Member functions
// Access
//- Return const access to the particle density
inline const scalar rho0() const;
//- Return const access to the minimum particle mass
inline const scalar minParticleMass() const;
};
@ -125,10 +122,16 @@ public:
//- Particle constant properties
const constantProperties& constProps_;
//- Interpolators for continuous phase fields
// Interpolators for continuous phase fields
//- Density interpolator
const interpolation<scalar>& rhoInterp_;
//- Velocity interpolator
const interpolation<vector>& UInterp_;
//- Dynamic viscosity interpolator
const interpolation<scalar>& muInterp_;
//- Local gravitational or other body-force acceleration
@ -137,13 +140,10 @@ public:
public:
bool switchProcessor;
bool keepParticle;
// Constructors
inline trackData
//- Construct from components
inline trackData
(
KinematicCloud<ParcelType>& cloud,
const constantProperties& constProps,
@ -156,16 +156,25 @@ public:
// Member functions
//- Return access to the owner cloud
inline KinematicCloud<ParcelType>& cloud();
//- Return const access to the constant properties
inline const constantProperties& constProps() const;
//- Return conat access to the interpolator for continuous
// phase density field
inline const interpolation<scalar>& rhoInterp() const;
//- Return conat access to the interpolator for continuous
// phase velocity field
inline const interpolation<vector>& UInterp() const;
//- Return conat access to the interpolator for continuous
// phase dynamic viscosity field
inline const interpolation<scalar>& muInterp() const;
// Return const access to the gravitational acceleration vector
inline const vector& g() const;
};
@ -200,13 +209,13 @@ protected:
// Cell-based quantities
// - Density
// - Density [kg/m3]
scalar rhoc_;
// - Velocity
// - Velocity [m/s]
vector Uc_;
// - Viscosity
// - Viscosity [Pa.s]
scalar muc_;
@ -351,10 +360,7 @@ public:
//- Move the parcel
template<class TrackData>
bool move
(
TrackData& td
);
bool move(TrackData& td);
// Patch interactions
@ -410,24 +416,18 @@ public:
//- Transform the physical properties of the particle
// according to the given transformation tensor
virtual void transformProperties(const tensor& T);
void transformProperties(const tensor& T);
//- Transform the physical properties of the particle
// according to the given separation vector
virtual void transformProperties(const vector& separation);
void transformProperties(const vector& separation);
// I-O
static void readFields
(
KinematicCloud<ParcelType>& c
);
static void readFields(KinematicCloud<ParcelType>& c);
static void writeFields
(
const KinematicCloud<ParcelType>& c
);
static void writeFields(const KinematicCloud<ParcelType>& c);
// Ostream Operator

View File

@ -83,27 +83,23 @@ public:
// Private data
//- Vapourisation temperature
//- Vapourisation temperature [K]
const scalar Tvap_;
//- Boiling point
//- Boiling point [K]
const scalar Tbp_;
public:
// Constructors
constantProperties
(
const dictionary& dict
);
//- Constructor
constantProperties(const dictionary& dict);
// Member functions
//- Return const access to the vapourisation temperature
inline const scalar Tvap() const;
// Access
inline const scalar Tvap() const;
inline const scalar Tbp() const;
//- Return const access to the boiling point
inline const scalar Tbp() const;
};
@ -121,14 +117,15 @@ public:
//- Particle constant properties
const constantProperties& constProps_;
//- Interpolators for continuous phase fields
//- Interpolator for continuous phase pressure field
const interpolation<scalar>& pInterp_;
const interpolation<scalar>& pInterp_;
public:
// Constructors
//- Construct from components
inline trackData
(
ReactingCloud<ParcelType>& cloud,
@ -145,10 +142,14 @@ public:
// Member functions
//- Return access to the owner cloud
inline ReactingCloud<ParcelType>& cloud();
//- Return const access to the constant properties
inline const constantProperties& constProps() const;
//- Return conat access to the interpolator for continuous
// phase pressure field
inline const interpolation<scalar>& pInterp() const;
};
@ -159,19 +160,19 @@ protected:
// Parcel properties
//- Initial particle mass
//- Initial particle mass [kg]
scalar mass0_;
//- Mass fractions of mixture
//- Mass fractions of mixture []
scalarField YMixture_;
//- Mass fractions of gases
//- Mass fractions of gases []
scalarField YGas_;
//- Mass fractions of liquids
//- Mass fractions of liquids []
scalarField YLiquid_;
//- Mass fractions of solids
//- Mass fractions of solids []
scalarField YSolid_;
//- Flag to say that the particle is allowed to combust
@ -181,7 +182,7 @@ protected:
// Cell-based quantities
//- Pressure
//- Pressure [Pa]
scalar pc_;
@ -311,15 +312,9 @@ public:
// I-O
static void readFields
(
ReactingCloud<ParcelType>& c
);
static void readFields(ReactingCloud<ParcelType>& c);
static void writeFields
(
const ReactingCloud<ParcelType>& c
);
static void writeFields(const ReactingCloud<ParcelType>& c);
};

View File

@ -99,10 +99,7 @@ public:
public:
// Constructors
constantProperties
(
const dictionary& dict
);
constantProperties(const dictionary& dict);
// Member functions
@ -129,9 +126,12 @@ public:
//- Particle constant properties
const constantProperties& constProps_;
//- Interpolators for continuous phase fields
// Interpolators for continuous phase fields
//- Temperature field interpolator
const interpolation<scalar>& TInterp_;
//- Scpecific heat capacity field interpolator
const interpolation<scalar>& cpInterp_;
@ -139,6 +139,7 @@ public:
// Constructors
//- Construct from components
inline trackData
(
ThermoCloud<ParcelType>& cloud,
@ -154,12 +155,18 @@ public:
// Member functions
//- Return access to the owner cloud
inline ThermoCloud<ParcelType>& cloud();
//- Return const access to the owner cloud
inline const constantProperties& constProps() const;
//- Return conat access to the interpolator for continuous
// phase temperature field
inline const interpolation<scalar>& TInterp() const;
//- Return conat access to the interpolator for continuous
// phase specific heat capacity field
inline const interpolation<scalar>& cpInterp() const;
};
@ -179,10 +186,10 @@ protected:
// Call-based quantities
//- Temperature
//- Temperature [K]
scalar Tc_;
//- Specific heat capacity
//- Specific heat capacity [J/(kg.K)]
scalar cpc_;
@ -283,15 +290,9 @@ public:
// I-O
static void readFields
(
ThermoCloud<ParcelType>& c
);
static void readFields(ThermoCloud<ParcelType>& c);
static void writeFields
(
const ThermoCloud<ParcelType>& c
);
static void writeFields(const ThermoCloud<ParcelType>& c);
};