mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: lagrangian/intermediate - replaced single injector model by injector list
This commit is contained in:
@ -28,8 +28,8 @@ License
|
|||||||
#include "interpolation.H"
|
#include "interpolation.H"
|
||||||
#include "subCycleTime.H"
|
#include "subCycleTime.H"
|
||||||
|
|
||||||
|
#include "InjectionModelList.H"
|
||||||
#include "DispersionModel.H"
|
#include "DispersionModel.H"
|
||||||
#include "InjectionModel.H"
|
|
||||||
#include "PatchInteractionModel.H"
|
#include "PatchInteractionModel.H"
|
||||||
#include "SurfaceFilmModel.H"
|
#include "SurfaceFilmModel.H"
|
||||||
|
|
||||||
@ -47,15 +47,6 @@ void Foam::KinematicCloud<CloudType>::setModels()
|
|||||||
).ptr()
|
).ptr()
|
||||||
);
|
);
|
||||||
|
|
||||||
injectionModel_.reset
|
|
||||||
(
|
|
||||||
InjectionModel<KinematicCloud<CloudType> >::New
|
|
||||||
(
|
|
||||||
subModelProperties_,
|
|
||||||
*this
|
|
||||||
).ptr()
|
|
||||||
);
|
|
||||||
|
|
||||||
patchInteractionModel_.reset
|
patchInteractionModel_.reset
|
||||||
(
|
(
|
||||||
PatchInteractionModel<KinematicCloud<CloudType> >::New
|
PatchInteractionModel<KinematicCloud<CloudType> >::New
|
||||||
@ -193,7 +184,8 @@ void Foam::KinematicCloud<CloudType>::evolveCloud(TrackData& td)
|
|||||||
|
|
||||||
preInjectionSize = this->size();
|
preInjectionSize = this->size();
|
||||||
}
|
}
|
||||||
this->injection().inject(td);
|
|
||||||
|
injectors_.inject(td);
|
||||||
|
|
||||||
|
|
||||||
// Assume that motion will update the cellOccupancy as necessary
|
// Assume that motion will update the cellOccupancy as necessary
|
||||||
@ -204,7 +196,7 @@ void Foam::KinematicCloud<CloudType>::evolveCloud(TrackData& td)
|
|||||||
{
|
{
|
||||||
// this->surfaceFilm().injectSteadyState(td);
|
// this->surfaceFilm().injectSteadyState(td);
|
||||||
|
|
||||||
this->injection().injectSteadyState(td, solution_.trackTime());
|
injectors_.injectSteadyState(td, solution_.trackTime());
|
||||||
|
|
||||||
td.part() = TrackData::tpLinearTrack;
|
td.part() = TrackData::tpLinearTrack;
|
||||||
CloudType::move(td, solution_.trackTime());
|
CloudType::move(td, solution_.trackTime());
|
||||||
@ -253,8 +245,9 @@ void Foam::KinematicCloud<CloudType>::cloudReset(KinematicCloud<CloudType>& c)
|
|||||||
|
|
||||||
functions_.transfer(c.functions_);
|
functions_.transfer(c.functions_);
|
||||||
|
|
||||||
|
injectors_.transfer(c.injectors_);
|
||||||
|
|
||||||
dispersionModel_.reset(c.dispersionModel_.ptr());
|
dispersionModel_.reset(c.dispersionModel_.ptr());
|
||||||
injectionModel_.reset(c.injectionModel_.ptr());
|
|
||||||
patchInteractionModel_.reset(c.patchInteractionModel_.ptr());
|
patchInteractionModel_.reset(c.patchInteractionModel_.ptr());
|
||||||
surfaceFilmModel_.reset(c.surfaceFilmModel_.ptr());
|
surfaceFilmModel_.reset(c.surfaceFilmModel_.ptr());
|
||||||
|
|
||||||
@ -338,8 +331,12 @@ Foam::KinematicCloud<CloudType>::KinematicCloud
|
|||||||
particleProperties_.subOrEmptyDict("cloudFunctions"),
|
particleProperties_.subOrEmptyDict("cloudFunctions"),
|
||||||
solution_.active()
|
solution_.active()
|
||||||
),
|
),
|
||||||
|
injectors_
|
||||||
|
(
|
||||||
|
subModelProperties_.subOrEmptyDict("injectionModels"),
|
||||||
|
*this
|
||||||
|
),
|
||||||
dispersionModel_(NULL),
|
dispersionModel_(NULL),
|
||||||
injectionModel_(NULL),
|
|
||||||
patchInteractionModel_(NULL),
|
patchInteractionModel_(NULL),
|
||||||
surfaceFilmModel_(NULL),
|
surfaceFilmModel_(NULL),
|
||||||
UIntegrator_(NULL),
|
UIntegrator_(NULL),
|
||||||
@ -418,8 +415,8 @@ Foam::KinematicCloud<CloudType>::KinematicCloud
|
|||||||
pAmbient_(c.pAmbient_),
|
pAmbient_(c.pAmbient_),
|
||||||
forces_(c.forces_),
|
forces_(c.forces_),
|
||||||
functions_(c.functions_),
|
functions_(c.functions_),
|
||||||
|
injectors_(c.injectors_),
|
||||||
dispersionModel_(c.dispersionModel_->clone()),
|
dispersionModel_(c.dispersionModel_->clone()),
|
||||||
injectionModel_(c.injectionModel_->clone()),
|
|
||||||
patchInteractionModel_(c.patchInteractionModel_->clone()),
|
patchInteractionModel_(c.patchInteractionModel_->clone()),
|
||||||
surfaceFilmModel_(c.surfaceFilmModel_->clone()),
|
surfaceFilmModel_(c.surfaceFilmModel_->clone()),
|
||||||
UIntegrator_(c.UIntegrator_->clone()),
|
UIntegrator_(c.UIntegrator_->clone()),
|
||||||
@ -507,8 +504,8 @@ Foam::KinematicCloud<CloudType>::KinematicCloud
|
|||||||
pAmbient_(c.pAmbient_),
|
pAmbient_(c.pAmbient_),
|
||||||
forces_(*this, mesh),
|
forces_(*this, mesh),
|
||||||
functions_(*this),
|
functions_(*this),
|
||||||
|
injectors_(*this),
|
||||||
dispersionModel_(NULL),
|
dispersionModel_(NULL),
|
||||||
injectionModel_(NULL),
|
|
||||||
patchInteractionModel_(NULL),
|
patchInteractionModel_(NULL),
|
||||||
surfaceFilmModel_(NULL),
|
surfaceFilmModel_(NULL),
|
||||||
UIntegrator_(NULL),
|
UIntegrator_(NULL),
|
||||||
@ -710,7 +707,7 @@ void Foam::KinematicCloud<CloudType>::info()
|
|||||||
<< " Rotational kinetic energy = "
|
<< " Rotational kinetic energy = "
|
||||||
<< rotationalKineticEnergy << nl;
|
<< rotationalKineticEnergy << nl;
|
||||||
|
|
||||||
this->injection().info(Info);
|
injectors_.info(Info);
|
||||||
this->surfaceFilm().info(Info);
|
this->surfaceFilm().info(Info);
|
||||||
this->patchInteraction().info(Info);
|
this->patchInteraction().info(Info);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -73,10 +73,10 @@ namespace Foam
|
|||||||
// Forward declaration of classes
|
// Forward declaration of classes
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
class DispersionModel;
|
class InjectionModelList;
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
class InjectionModel;
|
class DispersionModel;
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
class PatchInteractionModel;
|
class PatchInteractionModel;
|
||||||
@ -192,14 +192,13 @@ protected:
|
|||||||
|
|
||||||
// References to the cloud sub-models
|
// References to the cloud sub-models
|
||||||
|
|
||||||
|
//- Injector models
|
||||||
|
InjectionModelList<KinematicCloud<CloudType> > injectors_;
|
||||||
|
|
||||||
//- Dispersion model
|
//- Dispersion model
|
||||||
autoPtr<DispersionModel<KinematicCloud<CloudType> > >
|
autoPtr<DispersionModel<KinematicCloud<CloudType> > >
|
||||||
dispersionModel_;
|
dispersionModel_;
|
||||||
|
|
||||||
//- Injector model
|
|
||||||
autoPtr<InjectionModel<KinematicCloud<CloudType> > >
|
|
||||||
injectionModel_;
|
|
||||||
|
|
||||||
//- Patch interaction model
|
//- Patch interaction model
|
||||||
autoPtr<PatchInteractionModel<KinematicCloud<CloudType> > >
|
autoPtr<PatchInteractionModel<KinematicCloud<CloudType> > >
|
||||||
patchInteractionModel_;
|
patchInteractionModel_;
|
||||||
@ -393,6 +392,14 @@ public:
|
|||||||
|
|
||||||
// Sub-models
|
// Sub-models
|
||||||
|
|
||||||
|
//- Return const access to the injection model
|
||||||
|
inline const InjectionModelList<KinematicCloud<CloudType> >&
|
||||||
|
injectors() const;
|
||||||
|
|
||||||
|
//- Return reference to the injection model
|
||||||
|
inline InjectionModelList<KinematicCloud<CloudType> >&
|
||||||
|
injectors();
|
||||||
|
|
||||||
//- Return const-access to the dispersion model
|
//- Return const-access to the dispersion model
|
||||||
inline const DispersionModel<KinematicCloud<CloudType> >&
|
inline const DispersionModel<KinematicCloud<CloudType> >&
|
||||||
dispersion() const;
|
dispersion() const;
|
||||||
@ -401,14 +408,6 @@ public:
|
|||||||
inline DispersionModel<KinematicCloud<CloudType> >&
|
inline DispersionModel<KinematicCloud<CloudType> >&
|
||||||
dispersion();
|
dispersion();
|
||||||
|
|
||||||
//- Return const access to the injection model
|
|
||||||
inline const InjectionModel<KinematicCloud<CloudType> >&
|
|
||||||
injection() const;
|
|
||||||
|
|
||||||
//- Return reference to the injection model
|
|
||||||
inline InjectionModel<KinematicCloud<CloudType> >&
|
|
||||||
injection();
|
|
||||||
|
|
||||||
//- Return const-access to the patch interaction model
|
//- Return const-access to the patch interaction model
|
||||||
inline const PatchInteractionModel<KinematicCloud<CloudType> >&
|
inline const PatchInteractionModel<KinematicCloud<CloudType> >&
|
||||||
patchInteraction() const;
|
patchInteraction() const;
|
||||||
|
|||||||
@ -155,6 +155,22 @@ Foam::KinematicCloud<CloudType>::functions()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class CloudType>
|
||||||
|
inline const Foam::InjectionModelList<Foam::KinematicCloud<CloudType> >&
|
||||||
|
Foam::KinematicCloud<CloudType>::injectors() const
|
||||||
|
{
|
||||||
|
return injectors_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class CloudType>
|
||||||
|
inline Foam::InjectionModelList<Foam::KinematicCloud<CloudType> >&
|
||||||
|
Foam::KinematicCloud<CloudType>::injectors()
|
||||||
|
{
|
||||||
|
return injectors_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
inline const Foam::DispersionModel<Foam::KinematicCloud<CloudType> >&
|
inline const Foam::DispersionModel<Foam::KinematicCloud<CloudType> >&
|
||||||
Foam::KinematicCloud<CloudType>::dispersion() const
|
Foam::KinematicCloud<CloudType>::dispersion() const
|
||||||
@ -171,14 +187,6 @@ Foam::KinematicCloud<CloudType>::dispersion()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class CloudType>
|
|
||||||
inline const Foam::InjectionModel<Foam::KinematicCloud<CloudType> >&
|
|
||||||
Foam::KinematicCloud<CloudType>::injection() const
|
|
||||||
{
|
|
||||||
return injectionModel_;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
inline const Foam::PatchInteractionModel<Foam::KinematicCloud<CloudType> >&
|
inline const Foam::PatchInteractionModel<Foam::KinematicCloud<CloudType> >&
|
||||||
Foam::KinematicCloud<CloudType>::patchInteraction() const
|
Foam::KinematicCloud<CloudType>::patchInteraction() const
|
||||||
@ -195,14 +203,6 @@ Foam::KinematicCloud<CloudType>::patchInteraction()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class CloudType>
|
|
||||||
inline Foam::InjectionModel<Foam::KinematicCloud<CloudType> >&
|
|
||||||
Foam::KinematicCloud<CloudType>::injection()
|
|
||||||
{
|
|
||||||
return injectionModel_();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
inline const Foam::SurfaceFilmModel<Foam::KinematicCloud<CloudType> >&
|
inline const Foam::SurfaceFilmModel<Foam::KinematicCloud<CloudType> >&
|
||||||
Foam::KinematicCloud<CloudType>::surfaceFilm() const
|
Foam::KinematicCloud<CloudType>::surfaceFilm() const
|
||||||
|
|||||||
Reference in New Issue
Block a user