flowchart TD
%% External Dependency
OpenFOAMEnv["OpenFOAM Environment\n(libOpenFOAM, libfiniteVolume, MPI)"]:::external
%% Build System
subgraph "Build System"
direction TB
Allwmake["Allwmake"]:::build
Allwclean["Allwclean"]:::build
Bashrc["bashrc"]:::build
subgraph "Per-module Make Configs"
direction TB
MakeSrc["src/Make"]:::build
MakeSrcFiles["src/Make/files"]:::build
MakeSrcOptions["src/Make/options"]:::build
MakeApp["applications/rocketMotor/Make"]:::build
MakeAppFiles["applications/rocketMotor/Make/files"]:::build
MakeAppOpts["applications/rocketMotor/Make/options"]:::build
MakeUtil1["utilities/ReynoldsNumber/Make"]:::build
MakeUtil2["utilities/mapVolFields/Make"]:::build
MakeUtil3["utilities/postProcessRocket/Make"]:::build
end
end
%% Core Libraries
subgraph "Core Libraries"
direction TB
subgraph "Physics Models"
PhaseSystems["PhaseSystems"]:::core
Interfacial["interfacialModels"]:::core
Turbulence["multiphaseCompressibleTurbulenceModels"]:::core
PhaseModel["phaseModel"]:::core
InterfaceTrack["interfaceTrackingModels"]:::core
SharpHeat["sharpInterfaceHeatTransferModels"]:::core
end
subgraph "Boundary Conditions"
fvPatchFields["fvPatchFields"]:::core
end
FunctionObjs["functionObjects"]:::core
MultiPhaseSys["multiphaseSystem"]:::core
end
%% Applications
subgraph "Applications"
rocketMotor["rocketMotor (solver)"]:::app
end
%% Utilities
subgraph "Utilities"
direction TB
UtilRe["ReynoldsNumber"]:::util
UtilMap["mapVolFields"]:::util
UtilPost["postProcessRocket"]:::util
UtilCons["rocketConservation"]:::util
UtilSetAlpha["setMultipleAlphaField"]:::util
UtilInit["setRocketInitField"]:::util
UtilStream["streamFunction"]:::util
end
%% Data: Case Definitions & Outputs
subgraph "Data"
direction TB
CaseDefs["Case Definitions\n(tutorials/)"]:::data
SimOutputs["Simulation Outputs\n(time directories)"]:::data
end
%% Build-time Flow
OpenFOAMEnv -->|"setup env"| Allwmake
Allwmake -->|"invoke wmake"| MakeSrc
Allwmake --> MakeApp
Allwmake --> MakeUtil1
MakeSrc --> PhaseSystems
MakeSrc --> Interfacial
MakeSrc --> Turbulence
MakeSrc --> PhaseModel
MakeSrc --> InterfaceTrack
MakeSrc --> SharpHeat
MakeSrc --> fvPatchFields
MakeSrc --> FunctionObjs
MakeSrc --> MultiPhaseSys
MakeApp --> rocketMotor
MakeUtil1 --> UtilRe
MakeUtil2 --> UtilMap
MakeUtil3 --> UtilPost
%% Runtime Flow
CaseDefs -->|"read case files"| rocketMotor
rocketMotor -->|"link & invoke core libs"| PhaseSystems
rocketMotor --> Interfacial
rocketMotor --> Turbulence
rocketMotor --> PhaseModel
rocketMotor --> fvPatchFields
rocketMotor --> MultiPhaseSys
rocketMotor -->|"write fields"| SimOutputs
SimOutputs -->|"post-process"| UtilRe
SimOutputs --> UtilMap
SimOutputs --> UtilPost
SimOutputs --> UtilCons
SimOutputs --> UtilSetAlpha
SimOutputs --> UtilInit
SimOutputs --> UtilStream
%% Click Events
click Allwmake "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/./Allwmake"
click Allwclean "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/./Allwclean"
click Bashrc "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/./bashrc"
click MakeSrc "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/src/Make"
click MakeSrcFiles "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/src/Make/files"
click MakeSrcOptions "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/src/Make/options"
click MakeApp "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/applications/rocketMotor/Make"
click MakeAppFiles "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/applications/rocketMotor/Make/files"
click MakeAppOpts "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/applications/rocketMotor/Make/options"
click MakeUtil1 "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/utilities/ReynoldsNumber/Make"
click MakeUtil2 "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/utilities/mapVolFields/Make"
click MakeUtil3 "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/utilities/postProcessRocket/Make"
click rocketMotor "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/applications/rocketMotor"
click PhaseSystems "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/src/PhaseSystems"
click Interfacial "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/src/interfacialModels"
click Turbulence "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/src/multiphaseCompressibleTurbulenceModels"
click PhaseModel "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/src/phaseModel"
click InterfaceTrack "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/src/interfaceTrackingModels"
click SharpHeat "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/src/sharpInterfaceHeatTransferModels"
click fvPatchFields "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/src/fvPatchFields"
click FunctionObjs "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/src/functionObjects"
click MultiPhaseSys "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/src/multiphaseSystem"
click UtilRe "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/utilities/ReynoldsNumber"
click UtilMap "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/utilities/mapVolFields"
click UtilPost "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/utilities/postProcessRocket"
click UtilCons "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/utilities/rocketConservation"
click UtilSetAlpha "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/utilities/setMultipleAlphaField"
click UtilInit "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/utilities/setRocketInitField"
click UtilStream "https://github.com/ganeshkumar-v/propellant-regression-framework/tree/master/utilities/streamFunction"
%% Styles
classDef external fill:#CCCCCC,stroke:#333,stroke-width:1px
classDef build fill:#ADD8E6,stroke:#000,stroke-width:1px
classDef core fill:#90EE90,stroke:#000,stroke-width:1px
classDef app fill:#FFA500,stroke:#000,stroke-width:1px
classDef util fill:#D8BFD8,stroke:#000,stroke-width:1px
classDef data fill:#FFFFE0,stroke:#000,stroke-width:1px
📄 License
Distributed under the GNU General Public License v3 (GPL-3.0). See the LICENSE file for the full text.
This software is an independent project and is not affiliated with, endorsed by, or associated with OpenCFD Ltd or the OpenFOAM® project. OpenFOAM® is a registered trademark of OpenCFD Ltd.
🧑🔬 Authors and Acknowledgements
- Original author: Ganeshkumar V
- Developed under the supervision of: Prof. Dilip Srinivas Sundaram
📜 Citation
If you use this software in published work, please cite the associated paper:
Venukumar, Ganeshkumar and Sundaram, Dilip Srinivas, "Computational Study of Propulsive Performance of Frozen Nano-Aluminum and Water (ALICE) Mixtures," Journal of Propulsion and Power, vol. 41, no. 3, pp. 330–346, 2025. https://doi.org/10.2514/1.B39541
Suggested BibTeX:
@article{doi:10.2514/1.B39541,
author = {Venukumar, Ganeshkumar and Sundaram, Dilip Srinivas},
title = {Computational Study of Propulsive Performance of Frozen Nano-Aluminum and Water (ALICE) Mixtures},
journal = {Journal of Propulsion and Power},
volume = {41},
number = {3},
pages = {330-346},
year = {2025},
doi = {10.2514/1.B39541}
}
📬 Contact
If you encounter problems, please open an issue on the repository.