72 lines
1.9 KiB
Plaintext
72 lines
1.9 KiB
Plaintext
PF_cFlags="--description --help --version"
|
|
AllTimeFolders=
|
|
__getAllTime(){
|
|
files=( $(ls) )
|
|
deleteFiles=(settings caseSetup cleanThisCase VTK runThisCase stl postprocess postProcess)
|
|
declare -A delk
|
|
for del in "${deleteFiles[@]}" ; do delk[$del]=1 ; done
|
|
# Tag items to remove, based on
|
|
for k in "${!files[@]}" ; do
|
|
[ "${delk[${files[$k]}]-}" ] && unset 'files[k]'
|
|
done
|
|
# Compaction
|
|
COMPREPLY=("${files[@]}")
|
|
AllTimeFolders="${files[@]}"
|
|
}
|
|
|
|
__getFields(){
|
|
__getAllTime
|
|
local -A unique_files=()
|
|
|
|
for dir in $AllTimeFolders; do
|
|
# Check if the directory exists
|
|
if [ ! -d "$dir" ]; then
|
|
continue # Skip to the next directory
|
|
fi
|
|
|
|
files_in_dir=$(find "$dir" -maxdepth 1 -type f -printf '%f\n' | sort -u)
|
|
|
|
# Add filenames to the associative array (duplicates will be overwritten)
|
|
while IFS= read -r filename; do
|
|
unique_files["$filename"]=1 # Just the key is important, value can be anything
|
|
done <<< "$files_in_dir"
|
|
|
|
done
|
|
COMPREPLY=("${!unique_files[@]}")
|
|
AllTimeFolders=
|
|
}
|
|
|
|
_pFlowToVTK(){
|
|
if [ "$3" == "--time" ] ; then
|
|
__getAllTime
|
|
elif [ "$3" == "--fields" ]; then
|
|
__getFields
|
|
else
|
|
COMPREPLY=( $(compgen -W "$PF_cFlags --binary --no-geometry --no-particles --out-folder --time --separate-surfaces --fields" -- "$2") )
|
|
fi
|
|
}
|
|
complete -F _pFlowToVTK pFlowToVTK
|
|
|
|
_postprocessPhasicFlow(){
|
|
if [ "$3" == "--time" ]; then
|
|
__getAllTime
|
|
else
|
|
COMPREPLY=( $(compgen -W "$PF_cFlags --out-folder --time --zeroFolder" -- "$2") )
|
|
fi
|
|
}
|
|
complete -F _postprocessPhasicFlow postprocessPhasicFlow
|
|
|
|
complete -W "$PF_cFlags --positionParticles-only --setFields-only --coupling" particlesPhasicFlow
|
|
|
|
complete -W "$PF_cFlags --coupling" geometryPhasicFlow
|
|
|
|
complete -W "$PF_cFlags --coupling" iterateGeometry
|
|
|
|
complete -W "$PF_cFlags" iterateSphereParticles
|
|
|
|
complete -W "$PF_cFlags" sphereGranFlow
|
|
|
|
complete -W "$PF_cFlags" grainGranFlow
|
|
|
|
complete -W "$PF_cFlags" checkPhasicFlow
|