CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Programming & Development

how to compile a new CloudFunctionObjects for lagrangian module?

Register Blogs Members List Search Today's Posts Mark Forums Read

Like Tree1Likes
  • 1 Post By Bill_Yang

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   November 6, 2024, 22:24
Default how to compile a new CloudFunctionObjects for lagrangian module?
  #1
New Member
 
Bill
Join Date: Jun 2017
Posts: 17
Rep Power: 9
Bill_Yang is on a distinguished road
My issue is listed as follows:
(1) Purpose: I need to comiple a new CloudFunctionObjects for my lagrangian particle tracking.

(2) Issue: The "openfoam9/src/lagrangian/parcel/Make" folder in the openfoam source code didnot have codelines containning "CloudFunctionObjects". So It is not clear how the "CloudFunctionObjects" libraries are compiled in openfoam 9.

(3) From my experience of openfoam programming, we can find the "Make" folder in openfoam source code that is used to compile the code. If we want to generate a new function or solver that is based on the source code, we can develop new "Make" folder based on the existing similar one in the source code. I have generated multiple user-defined functions/solvers by using this kind of procedures. But, at this time, in the source code of the "openfoam9/src/lagrangian/parcel/Make" foder, the "files" file didnot have any codelines containing "CloudFunctionObjects" while the source ".C" and ".H" files of "CloudFunctionObjects" are found in the "openfoam9/src/lagrangian/parcel/lnInclude" folder. This is weird for me. As far as I know, the lnInclude foder should be generated based on make folder. If "CloudFunctionObjects" is not contained in make folder, why the the source ".C" and ".H" files can be added in the lnInclude foder?

Could anyone help me with this issue?

The "openfoam9/src/lagrangian/parcel/Make/files" is as follows:

Quote:
PARCELS=parcels
BASEPARCELS=$(PARCELS)/baseClasses
DERIVEDPARCELS=$(PARCELS)/derived

CLOUDS=clouds
BASECLOUDS=$(CLOUDS)/baseClasses
DERIVEDCLOUDS=$(CLOUDS)/derived

# Thermo
parcelThermo/parcelThermo.C

# parcel cloud
parcelCloud/parcelCloudBase.C
parcelCloud/parcelCloud.C
parcelCloud/parcelCloudNew.C
parcelCloudList/parcelCloudList.C

# cloud names
$(CLOUDS)/Templates/MomentumCloud/MomentumCloudName.C
$(CLOUDS)/Templates/CollidingCloud/CollidingCloudName.C
$(CLOUDS)/Templates/MPPICCloud/MPPICCloudName.C
$(CLOUDS)/Templates/ThermoCloud/ThermoCloudName.C
$(CLOUDS)/Templates/ReactingCloud/ReactingCloudName.C
$(CLOUDS)/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloudName.C
$(CLOUDS)/Templates/SprayCloud/SprayCloudName.C

# clouds
$(DERIVEDCLOUDS)/momentumCloud/momentumCloud.C
$(DERIVEDCLOUDS)/collidingCloud/collidingCloud.C
$(DERIVEDCLOUDS)/mppicCloud/mppicCloud.C
$(DERIVEDCLOUDS)/thermoCloud/thermoCloud.C
$(DERIVEDCLOUDS)/reactingCloud/reactingCloud.C
$(DERIVEDCLOUDS)/reactingMultiphaseCloud/reactingMultiphaseCloud.C
$(DERIVEDCLOUDS)/sprayCloud/sprayCloud.C

# parcel names
$(PARCELS)/Templates/MomentumParcel/MomentumParcelName.C
$(PARCELS)/Templates/CollidingParcel/CollidingParcelName.C
$(PARCELS)/Templates/MPPICParcel/MPPICParcelName.C
$(PARCELS)/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelName.C
$(PARCELS)/Templates/ReactingParcel/ReactingParcelName.C
$(PARCELS)/Templates/SprayParcel/SprayParcelName.C
$(PARCELS)/Templates/ThermoParcel/ThermoParcelName.C

# sub-models
$(DERIVEDPARCELS)/momentumParcel/makeMomentumParcelSubmodels.C
$(DERIVEDPARCELS)/collidingParcel/makeCollidingParcelSubmodels.C
$(DERIVEDPARCELS)/mppicParcel/makeMppicParcelSubmodels.C
$(DERIVEDPARCELS)/thermoParcel/makeThermoParcelSubmodels.C
$(DERIVEDPARCELS)/reactingParcel/makeReactingParcelSubmodels.C
$(DERIVEDPARCELS)/reactingMultiphaseParcel/makeReactingMultiphaseParcelSubmodels.C
$(DERIVEDPARCELS)/sprayParcel/makeSprayParcelSubmodels.C

# bolt-on models
RADIATION=submodels/addOns/radiation
$(RADIATION)/absorptionEmission/cloudAbsorptionEmission/cloudAbsorptionEmission.C
$(RADIATION)/scatter/cloudScatter/cloudScatter.C

PATCHINTERACTION=submodels/Momentum/PatchInteractionModel
$(PATCHINTERACTION)/LocalInteraction/patchInteractionData.C
$(PATCHINTERACTION)/LocalInteraction/patchInteractionDataList.C

MOMENTUMINJECTION=submodels/Momentum/InjectionModel
$(MOMENTUMINJECTION)/MomentumLookupTableInjection/momentumParcelInjectionData.C
$(MOMENTUMINJECTION)/MomentumLookupTableInjection/momentumParcelInjectionDataIO.C
$(MOMENTUMINJECTION)/MomentumLookupTableInjection/momentumParcelInjectionDataIOList.C
$(MOMENTUMINJECTION)/PatchInjection/patchInjectionBase.C

THERMOINJECTION=submodels/Thermodynamic/InjectionModel
$(THERMOINJECTION)/ThermoLookupTableInjection/thermoParcelInjectionData.C
$(THERMOINJECTION)/ThermoLookupTableInjection/thermoParcelInjectionDataIO.C
$(THERMOINJECTION)/ThermoLookupTableInjection/thermoParcelInjectionDataIOList.C

REACTINGINJECTION=submodels/Reacting/InjectionModel
$(REACTINGINJECTION)/ReactingLookupTableInjection/reactingParcelInjectionData.C
$(REACTINGINJECTION)/ReactingLookupTableInjection/reactingParcelInjectionDataIO.C
$(REACTINGINJECTION)/ReactingLookupTableInjection/reactingParcelInjectionDataIOList.C

REACTINGMPINJECTION=submodels/ReactingMultiphase/InjectionModel
$(REACTINGMPINJECTION)/ReactingMultiphaseLookupTableInjection/reactingMultiphaseParcelInjectionData.C
$(REACTINGMPINJECTION)/ReactingMultiphaseLookupTableInjection/reactingMultiphaseParcelInjectionDataIO.C
$(REACTINGMPINJECTION)/ReactingMultiphaseLookupTableInjection/reactingMultiphaseParcelInjectionDataIOList.C

MPPICPARTICLESTRESS=submodels/MPPIC/ParticleStressModels
$(MPPICPARTICLESTRESS)/ParticleStressModel/ParticleStressModel.C
$(MPPICPARTICLESTRESS)/HarrisCrighton/HarrisCrighton.C
$(MPPICPARTICLESTRESS)/Lun/Lun.C
$(MPPICPARTICLESTRESS)/exponential/exponential.C

MPPICCORRECTIONLIMITING=submodels/MPPIC/CorrectionLimitingMethods
$(MPPICCORRECTIONLIMITING)/CorrectionLimitingMethod/CorrectionLimitingMethod.C
$(MPPICCORRECTIONLIMITING)/noCorrectionLimiting/noCorrectionLimiting.C
$(MPPICCORRECTIONLIMITING)/absolute/absolute.C
$(MPPICCORRECTIONLIMITING)/relative/relative.C

MPPICTIMESCALE=submodels/MPPIC/TimeScaleModels
$(MPPICTIMESCALE)/TimeScaleModel/TimeScaleModel.C
$(MPPICTIMESCALE)/equilibrium/equilibrium.C
$(MPPICTIMESCALE)/nonEquilibrium/nonEquilibrium.C
$(MPPICTIMESCALE)/isotropic/isotropic.C

# integration schemes
integrationScheme/integrationScheme/integrationScheme.C
integrationScheme/integrationScheme/integrationSchemeNew.C
integrationScheme/Euler/Euler.C
integrationScheme/analytical/analytical.C

# phase properties
phaseProperties/phaseProperties/phaseProperties.C
phaseProperties/phaseProperties/phasePropertiesIO.C
phaseProperties/phasePropertiesList/phasePropertiesList.C

# additional helper classes
clouds/Templates/MomentumCloud/cloudSolution/cloudSolution.C

# averaging methods
submodels/MPPIC/AveragingMethods/makeAveragingMethods.C

# fvModels
fvModels/clouds/clouds.C

LIB = $(FOAM_LIBBIN)/liblagrangianParcel

Last edited by Bill_Yang; November 6, 2024 at 22:27. Reason: more details
Bill_Yang is offline   Reply With Quote

Old   November 7, 2024, 05:45
Default
  #2
Senior Member
 
Domenico Lahaye
Join Date: Dec 2013
Posts: 802
Blog Entries: 1
Rep Power: 18
dlahaye is on a distinguished road
Is CloudFunctionObject an example of a function object whose compilation is triggered by the function object machinery as part of running the solver?

I imagine this is easy to verify.
dlahaye is offline   Reply With Quote

Old   November 14, 2024, 01:40
Default
  #3
New Member
 
Bill
Join Date: Jun 2017
Posts: 17
Rep Power: 9
Bill_Yang is on a distinguished road
Thank you for your reply. I think it is not.

I managed to solve this problem. Just in case other person has similar issue. The cloudfunctionobjects are hiddened in the files named "/opt/openfoam9/src/lagrangian/parcel/parcels/include/makeParcelCloudFunctionObjects.H". So, we need to recompile ''parcels" in lagrangian folder to develop our own models inside ''parcels" in lagrangian folder.


Quote:
Originally Posted by dlahaye View Post
Is CloudFunctionObject an example of a function object whose compilation is triggered by the function object machinery as part of running the solver?

I imagine this is easy to verify.
dlahaye likes this.
Bill_Yang is offline   Reply With Quote

Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
[OpenFOAM.org] [GUIDE] How to compile OpenFOAM source on a cluster/server with no admin rights gabrielfelix OpenFOAM Installation 1 July 5, 2022 06:18
InterFOAM water channel case Error mkjmalik OpenFOAM Running, Solving & CFD 4 August 23, 2020 12:32
Why is my rhopimplefoam crashing? marxlolop OpenFOAM Running, Solving & CFD 1 January 6, 2019 17:39
cyclicAMI bc with two neighbouring patches Thecomebackkid OpenFOAM Pre-Processing 5 August 16, 2018 10:12
Can someone PLEASE document the development version installation bernd OpenFOAM Installation 76 November 14, 2008 22:51


All times are GMT -4. The time now is 00:05.