https://www.openfoam.com
https://www.openfoam.org
https://gitlab.com/foam-for-nuclear/offbeat
https://dl.openfoam.com/repos/deb/dists/ (new versions)
===== OpenFOAM 9 =====
https://openfoam.org/download/history/
https://openfoam.org/download/9-ubuntu/
https://dl.openfoam.org/ubuntu/dists/jammy/main/binary-amd64/
https://dl.openfoam.org/ubuntu/dists/focal/main/binary-amd64/
patch https://github.com/OpenFOAM/OpenFOAM-9/commit/b0c15bebd37142f3902901ed5e9a60e33ed456eb
https://github.com/OpenFOAM/OpenFOAM-9
===== GCC 12 problem =====
https://github.com/OpenFOAM/OpenFOAM-9/commit/b0c15bebd37142f3902901ed5e9a60e33ed456eb
file OpenFOAM-9/src/OpenFOAM/db/IOstreams/hashes/OSHA1stream.H
class sha1streambuf
method overflow
===== Install on Ubuntu 20.04 or 22.04 =====
root
apt install mc git
sh -c "wget -O - https://dl.openfoam.org/gpg.key > /etc/apt/trusted.gpg.d/openfoam.asc"
add-apt-repository http://dl.openfoam.org/ubuntu
apt-get update
apt-get -y install openfoam9
user
cd ~
git clone https://gitlab.com/foam-for-nuclear/offbeat
mv offbeat Offbeat
cd ~/Offbeat
source /opt/openfoam9/etc/bashrc
make -j
mkdir ~/test
cp -r /opt/openfoam9/tutorials/mesh/blockMesh/sphere ~/test/sphere
cd ~/test/sphere
source /opt/openfoam9/etc/bashrc
./Allrun
paraFoam -builtin
cp -r ~/Offbeat/Cases/testCases/generic_pwr_2D_rTheta ~/test/generic_pwr_2D_rTheta
cd ~/test/generic_pwr_2D_rTheta
source /opt/openfoam9/etc/bashrc
./Allrun
paraFoam
[[http://kmlinux.fjfi.cvut.cz/~culikzde/openfoam/offbeat-ubuntu-20-04.tgz|offbeat-ubuntu-20-04.tgz]]
[[http://kmlinux.fjfi.cvut.cz/~culikzde/openfoam/offbeat-ubuntu-22-04.tgz|offbeat-ubuntu-22-04.tgz]]
( rename offbeat to Offbeat, rename uzivatel-9 to -9 )
===== Live DVD Ubuntu 20.04 =====
**create new filesystem.squashfs**
directories: modified, original, result
Copy from running Ubuntu to modified
etc
home
opt
usr
var
(root)
mkdir original
mount -r -t squashfs casper/filesystem.squashfs original
mkdir result
Copy files from original to result
Replace directories from modified
umount original
mksquashfs result filesystem.squashfs
**data for new DVD**
directories: old_disk, new_disk
mkdir old_disk
mount -r ubuntu-mate-20.04-desktop-amd64.iso old_disk
mkdir new_disk
copy files from old_disk, replace new filesystem.squashfs
umount old_disk
new_disk, isolinux/txt.cfg,
add to line with command 'append'
fsck.mode=skip
append file=/cdrom/preseed/ubuntu-mate.seed initrd=/casper/initrd fsck.mode=skip quiet splash ---
from https://askubuntu.com/questions/1313247/disable-integrity-check-on-ubuntu-server-20-04-1-iso
**create .iso**
without UEFI
genisoimage \
-cache-inodes \
-J \
-joliet-long \
-b 'isolinux/isolinux.bin' \
-c 'isolinux/boot.cat' \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-volid 'Custom' \
-o ubuntu-mate-20.04-openfoam-amd64.iso \
new_disk
from https://help.ubuntu.com/community/InstallCDCustomization#Preparing_the_bootable_medium
( pacman -S cdrkit )
**grub.cfg**
menuentry "Ubuntu Mate 20.04" {
set dir="/ubuntu-20-04"
linux $dir/casper/vmlinuz boot=casper iso-scan/filename=$dir showmounts
initrd $dir/casper/initrd
}
menuentry "Ubuntu Mate 20.04 (from iso)" {
set dir="/ubuntu-20-04"
# set isofile="$dir/ubuntu-mate-22.04-desktop-amd64.iso"
set isofile="$dir/ubuntu-mate-22.04-openfoam-amd64.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile showmounts noprompt noeject
initrd (loop)/casper/initrd
}
===== Live DVD Ubuntu 22.04 =====
mount -r original.squashfs /mnt/original
mksquashfs new_directory filesystem.squashfs
# xorriso -indev .../ubuntu-mate-22.04-desktop-amd64.iso -report_el_torito as_mkisofs
**Do not use, DVD is not bootable**
genisoimage \
-untranslated-filenames \
-J \
-joliet-long \
-rational-rock \
-translation-table \
-input-charset utf-8 \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-boot-load-size 8496 \
-eltorito-boot 'boot/grub/i386-pc/eltorito.img' \
-volid 'Ubuntu-MATE 22.04 LTS amd64' \
-o ubuntu-mate-22.04-prog-amd64.iso \
data_directory
menuentry "Ubuntu Mate 22.04" {
set dir="/ubuntu-mate-22.04-prog"
linux $dir/casper/vmlinuz boot=casper iso-scan/filename=$dir show-cow
initrd $dir/casper/initrd
}
menuentry "Ubuntu Mate 22.04 (from iso)" {
set dir="/ubuntu-mate-22.04-iso"
# set isofile="$dir/ubuntu-mate-22.04-desktop-amd64.iso"
set isofile="$dir/ubuntu-mate-22.04-prog-amd64.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile show-cow noprompt noeject
initrd (loop)/casper/initrd
}
===== Compile on Archlinux =====
**Compile OpenFoam-9**
mkdir ~/OpenFOAM
cd ~/OpenFOAM
git clone https://github.com/OpenFOAM/OpenFOAM-9
less OpenFOAM-9/src/OpenFOAM/db/IOstreams/hashes/OSHA1stream.H
# class sha1streambuf methods xsputn and overflow
cd ~/OpenFOAM/OpenFOAM-9
source ~/OpenFOAM/OpenFOAM-9/etc/bashrc
./Allwmake -j
**Compile Offbeat**
cd ~
git clone https://gitlab.com/foam-for-nuclear/offbeat
mv offbeat Offbeat
cd ~/Offbeat
source ~/OpenFOAM/OpenFOAM-9/etc/bashrc
make -j
**OpenFoam example**
cp -r ~/OpenFOAM/OpenFOAM-9/tutorials/mesh/blockMesh/sphere ~/test/sphere
cd ~/test/sphere
source ~/OpenFOAM/OpenFOAM-9/etc/bashrc
./Allrun
# blockMesh
paraFoam -builtin
# click Apply button
**Offbeat example**
cp -r ~/Offbeat/Cases/testCases/generic_pwr_2D_rTheta ~/test/generic_pwr_2D_rTheta
cd ~/test/generic_pwr_2D_rTheta
source ~/OpenFOAM/OpenFOAM-9/etc/bashrc
./Allrun
paraFoam -builtin
**Remote access**
ssh -Y ...
===== Compile on Helios =====
problem with OpenFOAM-9/src/parallel/decompose/scotchDecomp
module add gcc/11.3
# module add openmpi/3.1.3-gcc_4.8.5-psm2
# sed -i -e 's/-std=c++14/-std=c++11/' ~/OpenFOAM/OpenFOAM-9/wmake/rules/linux64Gcc/c++
echo 'export SCOTCH_ARCH_PATH=""' >> ~/OpenFOAM/OpenFOAM-9/etc/config.sh/scotch
cd ~/OpenFOAM/OpenFOAM-9
source ~/OpenFOAM/OpenFOAM-9/etc/bashrc
./Allwmake -j 16
other instructions are same as for Arch Linux
**paraview**
module load paraview/5.5.1
paraview --mesa-llvm
paraFoam -builtin --mesa-llvm
https://stackoverflow.com/questions/37664786/gl-version-2-1-with-the-gpu-shader4-extension-is-not-supported-by-your-graphics
glxinfo | egrep -i 'Direct|String'
====== Neusporadane poznamky ======
https://develop.openfoam.com/Development/openfoam/-/wikis/precompiled/redhat
Fedora 37 .spec file https://download.copr.fedorainfracloud.org/results/openfoam/openfoam/fedora-37-x86_64/06123312-openfoam2306/openfoam2306.spec
https://openfoam.org/download/9-source/
https://codeload.github.com/OpenFOAM/OpenFOAM-9/tar.gz/refs/tags/version-9
https://codeload.github.com/OpenFOAM/ThirdParty-9/tar.gz/refs/tags/version-9
===== Compile on AlmaLinux =====
dnf install git g++ flex zlib-devel boost-devel openmpi-devel
modify ~/OpenFOAM/OpenFOAM-9/etc/bashrc
export WM_MPLIB=OPENMPI
file ~/OpenFOAM/OpenFOAM-9/wmake/rules/General
PFLAGS = -DOMPI_SKIP_MPICXX
PINC = -isystem $(MPI_ARCH_PATH)/include -I /usr/include/openmpi-x86_64
PLIBS = -L$(MPI_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) -L$(MPI_ARCH_PATH)/lib -L/usr/lib64/openmpi/lib/ -lmpi
problem with OpenFOAM-9/src/parallel/decompose/scotchDecomp
===== Compile on Fedora 38 =====
dnf openmpi-devel
add to OpenFOAM-9/etc/bashrc
export PATH=/usr/lib64/openmpi/bin:$PATH
dnf install g++ flex zlib-devel openmpi-devel
cd OpenFOAM-9
source etc/bashrc
./Allwmake
problem with OpenFOAM-9/applications/solvers/multiphaseEulerFoam (removed)
===== Gas Pressure =====
**input file with initial value **
gasPressure 2.25e6;
https://gitlab.com/AlessandroScolaro/offbeat-official/-/blob/master/Cases/testCases/generic_pwr_2D_rTheta/0/gapGas#L29
**read variable from file**
https://gitlab.com/AlessandroScolaro/offbeat-official/-/blob/master/offbeatLib/gapGasModel/gapFRAPCON.C#L1225
depends on //gasPressureType//
**class variable** //gasP_// in class //gapGasModel//
https://gitlab.com/AlessandroScolaro/offbeat-official/-/blob/master/offbeatLib/gapGasModel/gapGasModel.H#L129
**calculate value** in //gapFRAPCON::correct//, //gapFRAPCON// is sub-class of //gapGasModel//
https://gitlab.com/AlessandroScolaro/offbeat-official/-/blob/master/offbeatLib/gapGasModel/gapFRAPCON.C#L1142
**acces function** //p()//
https://gitlab.com/AlessandroScolaro/offbeat-official/-/blob/master/offbeatLib/gapGasModel/gapFRAPCON.C#L1225
**using acces function** //gapGas.p()//
[[https://gitlab.com/AlessandroScolaro/offbeat-official/-/blob/master/offbeatLib/fvPatchFields/fixedDisplacement/plenumSpringFixedDisplacementFvPatchVectorField.C#L214|fixedDisplacement/plenumSpringFixedDisplacementFvPatchVectorField.C#L214]]
[[https://gitlab.com/AlessandroScolaro/offbeat-official/-/blob/master/offbeatLib/fvPatchFields/fixedDisplacement/topCladRingFixedDisplacementFvPatchVectorField.C#L269|fixedDisplacement/topCladRingFixedDisplacementFvPatchVectorField.C#L269]]
[[https://gitlab.com/AlessandroScolaro/offbeat-official/-/blob/master/offbeatLib/fvPatchFields/tractionDisplacement/gapContactFvPatchVectorField.C#L374|tractionDisplacement/gapContactFvPatchVectorField.C#L374]]
[[https://gitlab.com/AlessandroScolaro/offbeat-official/-/blob/master/offbeatLib/fvPatchFields/tractionDisplacement/gapContactFvPatchVectorField.C#L374|tractionDisplacement/gapContactFvPatchVectorField.C#L374]]
[[https://gitlab.com/AlessandroScolaro/offbeat-official/-/blob/master/offbeatLib/fvPatchFields/tractionDisplacement/gapContactFvPatchVectorField.C#L374|
tractionDisplacement/gapContactFvPatchVectorField.C#L374]]
[[https://gitlab.com/AlessandroScolaro/offbeat-official/-/blob/master/offbeatLib/fvPatchFields/tractionDisplacement/topCladRingPressureFvPatchVectorField.C#L190|tractionDisplacement/topCladRingPressureFvPatchVectorField.C#L190]]
[[https://gitlab.com/AlessandroScolaro/offbeat-official/-/blob/master/offbeatLib/rheology/rheologyByMaterial.C#L683|rheologyByMaterial.C#L683]]
[[https://gitlab.com/AlessandroScolaro/offbeat-official/-/blob/master/offbeatLib/rheology/rheologyByMaterial.C#L693|rheologyByMaterial.C#L693]]
**class method with real calculation**
void Foam::plenumSpringFixedDisplacementFvPatchVectorField::updateCoeffs()
https://gitlab.com/AlessandroScolaro/offbeat-official/-/blob/master/offbeatLib/fvPatchFields/fixedDisplacement/plenumSpringFixedDisplacementFvPatchVectorField.C#L89
**descriptive comments in this method**
https://gitlab.com/AlessandroScolaro/offbeat-official/-/blob/master/offbeatLib/fvPatchFields/fixedDisplacement/plenumSpringFixedDisplacementFvPatchVectorField.C#L160
if(!planeStrain_)
{
// Assume plane stress --> local quantities:
// sigma_z * A
// = (2mu+lambda)*A*gradD_z + Q*A = -k*D_s - p_g*A
// = (2mu+lambda)*A*(Dfz - Dpz)/delta + Q*A = -k*D_s - p_g*A
//
// Thus:
// Dfz = 1/((2mu+lambda)*A/delta)*[
// -k*D_s - p_g*A + (2mu+lambda)*Dpz*A*/delta - Q*A]
//
// (sign of gradient and of forces change depending on the patch being
// fuel top or top cap inner)
twoMuLambdaA = sign(nAvg & pinDirection)*
(twoMuLambda/delta)*gSum(magSf)/angularFraction;
twoMuLambdaDfA = sign(nAvg & pinDirection)*
(twoMuLambda*Dz/delta)*gSum(magSf)/angularFraction;
QA = Q*gSum(magSf)/angularFraction;
}
else
{
// Apply plane strain --> integral quantities:
// sigma_z * A
// = int((2mu+lambda)*gradD_z*dA) + int(Q*dA) = -k*D_s - p_g*A
// = int((2mu+lambda)*(Dfz - Dpz)/delta*dA) + int(Q*dA) = -k*D_s - p_g*A
//
// Thus:
// Dfz = 1/int((2mu+lambda)*dA/delta)*[
// -k*D_s - p_g*A + int((2mu+lambda)*Dpz*dA*/delta) - int(Q*dA)]
//
// (sign of gradient and of forces change depending on the patch being
// fuel top or top cap inner)
// Calculate integrals
twoMuLambdaA = (sign(nAvg & pinDirection)*(
gSum(twoMuLambda*magSf/delta/angularFraction)));
twoMuLambdaDfA = (sign(nAvg & pinDirection)*(
gSum(twoMuLambda*Dz*magSf/delta/angularFraction)));
QA = (gSum(Q*magSf/angularFraction));
}
** obrazky **
[[openfoam-pictures]]
http://kmlinux.fjfi.cvut.cz/~culik/openfoam-pictures