Code Monkey home page Code Monkey logo

flusi's Introduction

Notes for FLUSI (with HDF5)

All remarks about installation can be found in the WIKI on github, at

https://github.com/pseudospectators/FLUSI/wiki

There you can find the general installation procedure as well as
machine dependend settings on the clusters we use.

flusi's People

Contributors

dkolom avatar malcolmroberts avatar tommy-engels avatar truong-hung avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flusi's Issues

parallel make does not work since es3bis implementation

since the upgrade of the es3bis version into master branch, the makefile is corrupted: it builds *when
compiling freshly, eg after make clean) only in a serial version make -j1

it seems some dependencies are not resolved.

Active grid winglets compilation error

Active grid winglets generate errors, please do something with it!

f90: error(144): active_grid_winglets.f90, line 16:
定数の種別パラメタ値に誤りがある。
f90: error(144): active_grid_winglets.f90, line 19:
定数の種別パラメタ値に誤りがある。
f90: error(144): active_grid_winglets.f90, line 20:
定数の種別パラメタ値に誤りがある。
f90: error(144): active_grid_winglets.f90, line 22:
定数の種別パラメタ値に誤りがある。
f90: error(144): active_grid_winglets.f90, line 23:
定数の種別パラメタ値に誤りがある。
f90: error(426): active_grid_winglets.f90, line 34:
型宣言文、IMPLICIT文、FUNCTION文または成
分定義文で、型指定子の種別パラメタ値に誤
りがある。
f90: warn(84): active_grid_winglets.f90, line 37:

unsteady corrections in free_flight

The unsteady corrections in the free-flight solver need a thorough check.

For the falling cylinder, if we set
unst_corrections=0;
then we implicitly take those into account in the eqn, since it reads (rho_s-rho_f)u_dt = ...
so if you set
unst_corrections=1;
they are taken into account twice.
For the rotation, it needs to be checked as well

memory management

Memory management:

on branch master, maybe delete the array VORT and replace it by WORK (it is confusing to call it vort since it is actually a work array. at mid-term maybe have only "workc" and "work" as work arrays

on branch FSI, two issues: the pressure requires a workc array, but this should be fine once the new master is merged in (use workc then). the iterative FSI scheme requires an additional uk_old vector, but I'm afraid thats inevitable

its is also not entirely clear if we actually need 3 complex arrays for sponge

FLUSI compiling issue

balbir@quanta:~/FLUSI$ make -j1
mkdir -p obj
mpif90 -g -Jobj -Wuninitialized -fimplicit-none -fbounds-check -g -ggdb -fbacktrace -O3 -I/home/balbir/src/p3dfft-2.7.9/include -I/home/balbir/src/fftw-3.3.9/include -cpp -I/home/balbir/src/hdf5-1.12.1/include -c -o obj/module_timing.o src/module_timing.f90 -L/home/balbir/src/p3dfft-2.7.9/lib -lp3dfft -L/home/balbir/src/fftw-3.3.9/lib -lfftw3 -L/home/balbir/src/hdf5-1.12.1/lib -lhdf5_fortran -lhdf5 -llapack -lblas -lz -ldl -lm
mpif90 -g -Jobj -Wuninitialized -fimplicit-none -fbounds-check -g -ggdb -fbacktrace -O3 -I/home/balbir/src/p3dfft-2.7.9/include -I/home/balbir/src/fftw-3.3.9/include -cpp -I/home/balbir/src/hdf5-1.12.1/include -c -o obj/vars.o src/vars.f90 -L/home/balbir/src/p3dfft-2.7.9/lib -lp3dfft -L/home/balbir/src/fftw-3.3.9/lib -lfftw3 -L/home/balbir/src/hdf5-1.12.1/lib -lhdf5_fortran -lhdf5 -llapack -lblas -lz -ldl -lm
mpif90 -g -Jobj -Wuninitialized -fimplicit-none -fbounds-check -g -ggdb -fbacktrace -O3 -I/home/balbir/src/p3dfft-2.7.9/include -I/home/balbir/src/fftw-3.3.9/include -cpp -I/home/balbir/src/hdf5-1.12.1/include -c -o obj/module_helpers.o src/module_helpers.f90 -L/home/balbir/src/p3dfft-2.7.9/lib -lp3dfft -L/home/balbir/src/fftw-3.3.9/lib -lfftw3 -L/home/balbir/src/hdf5-1.12.1/lib -lhdf5_fortran -lhdf5 -llapack -lblas -lz -ldl -lm
mpif90 -g -Jobj -Wuninitialized -fimplicit-none -fbounds-check -g -ggdb -fbacktrace -O3 -I/home/balbir/src/p3dfft-2.7.9/include -I/home/balbir/src/fftw-3.3.9/include -cpp -I/home/balbir/src/hdf5-1.12.1/include -c -o obj/cof_p3dfft.o src/cof_p3dfft.f90 -L/home/balbir/src/p3dfft-2.7.9/lib -lp3dfft -L/home/balbir/src/fftw-3.3.9/lib -lfftw3 -L/home/balbir/src/hdf5-1.12.1/lib -lhdf5_fortran -lhdf5 -llapack -lblas -lz -ldl -lm
mpif90 -g -Jobj -Wuninitialized -fimplicit-none -fbounds-check -g -ggdb -fbacktrace -O3 -I/home/balbir/src/p3dfft-2.7.9/include -I/home/balbir/src/fftw-3.3.9/include -cpp -I/home/balbir/src/hdf5-1.12.1/include -c -o obj/ghostpoints.o src/ghostpoints.f90 -L/home/balbir/src/p3dfft-2.7.9/lib -lp3dfft -L/home/balbir/src/fftw-3.3.9/lib -lfftw3 -L/home/balbir/src/hdf5-1.12.1/lib -lhdf5_fortran -lhdf5 -llapack -lblas -lz -ldl -lm
mpif90 -g -Jobj -Wuninitialized -fimplicit-none -fbounds-check -g -ggdb -fbacktrace -O3 -I/home/balbir/src/p3dfft-2.7.9/include -I/home/balbir/src/fftw-3.3.9/include -cpp -I/home/balbir/src/hdf5-1.12.1/include -c -o obj/basic_operators.o src/basic_operators.f90 -L/home/balbir/src/p3dfft-2.7.9/lib -lp3dfft -L/home/balbir/src/fftw-3.3.9/lib -lfftw3 -L/home/balbir/src/hdf5-1.12.1/lib -lhdf5_fortran -lhdf5 -llapack -lblas -lz -ldl -lm
mpif90 -g -Jobj -Wuninitialized -fimplicit-none -fbounds-check -g -ggdb -fbacktrace -O3 -I/home/balbir/src/p3dfft-2.7.9/include -I/home/balbir/src/fftw-3.3.9/include -cpp -I/home/balbir/src/hdf5-1.12.1/include -c -o obj/interpolation.o src/interpolation.f90 -L/home/balbir/src/p3dfft-2.7.9/lib -lp3dfft -L/home/balbir/src/fftw-3.3.9/lib -lfftw3 -L/home/balbir/src/hdf5-1.12.1/lib -lhdf5_fortran -lhdf5 -llapack -lblas -lz -ldl -lm
src/interpolation.f90:78:0:

end function

Warning: ‘__result_delta’ may be used uninitialized in this function [-Wmaybe-uninitialized]
src/interpolation.f90:57:0:

real (kind=pr) function delta(x,dx1)

note: ‘__result_delta’ was declared here
src/interpolation.f90:43:0:

         value = value + delx*dely*delz*field( per(ix,nx),per(iy,ny),per(iz,nz) )

Warning: ‘__result_delta’ may be used uninitialized in this function [-Wmaybe-uninitialized]
mpif90 -g -Jobj -Wuninitialized -fimplicit-none -fbounds-check -g -ggdb -fbacktrace -O3 -I/home/balbir/src/p3dfft-2.7.9/include -I/home/balbir/src/fftw-3.3.9/include -cpp -I/home/balbir/src/hdf5-1.12.1/include -c -o obj/ini_files_parser.o src/ini_files_parser.f90 -L/home/balbir/src/p3dfft-2.7.9/lib -lp3dfft -L/home/balbir/src/fftw-3.3.9/lib -lfftw3 -L/home/balbir/src/hdf5-1.12.1/lib -lhdf5_fortran -lhdf5 -llapack -lblas -lz -ldl -lm
mpif90 -g -Jobj -Wuninitialized -fimplicit-none -fbounds-check -g -ggdb -fbacktrace -O3 -I/home/balbir/src/p3dfft-2.7.9/include -I/home/balbir/src/fftw-3.3.9/include -cpp -I/home/balbir/src/hdf5-1.12.1/include -c -o obj/ini_files_parser_mpi.o src/ini_files_parser_mpi.f90 -L/home/balbir/src/p3dfft-2.7.9/lib -lp3dfft -L/home/balbir/src/fftw-3.3.9/lib -lfftw3 -L/home/balbir/src/hdf5-1.12.1/lib -lhdf5_fortran -lhdf5 -llapack -lblas -lz -ldl -lm
mpif90 -g -Jobj -Wuninitialized -fimplicit-none -fbounds-check -g -ggdb -fbacktrace -O3 -I/home/balbir/src/p3dfft-2.7.9/include -I/home/balbir/src/fftw-3.3.9/include -cpp -I/home/balbir/src/hdf5-1.12.1/include -c -o obj/module_insects_integration_flusi_wabbit.o src/insects/module_insects_integration_flusi_wabbit.f90 -L/home/balbir/src/p3dfft-2.7.9/lib -lp3dfft -L/home/balbir/src/fftw-3.3.9/lib -lfftw3 -L/home/balbir/src/hdf5-1.12.1/lib -lhdf5_fortran -lhdf5 -llapack -lblas -lz -ldl -lm
mpif90 -Isrc/insects/ -g -Jobj -Wuninitialized -fimplicit-none -fbounds-check -g -ggdb -fbacktrace -O3 -I/home/balbir/src/p3dfft-2.7.9/include -I/home/balbir/src/fftw-3.3.9/include -cpp -I/home/balbir/src/hdf5-1.12.1/include -c -o obj/module_insects.o src/insects/module_insects.f90 -L/home/balbir/src/p3dfft-2.7.9/lib -lp3dfft -L/home/balbir/src/fftw-3.3.9/lib -lfftw3 -L/home/balbir/src/hdf5-1.12.1/lib -lhdf5_fortran -lhdf5 -llapack -lblas -lz -ldl -lm
body_motion.f90:244:0:

Warning: ‘psi_dt’ may be used uninitialized in this function [-Wmaybe-uninitialized]
body_motion.f90:246:0:

Warning: ‘gamma_dt’ may be used uninitialized in this function [-Wmaybe-uninitialized]
body_motion.f90:245:0:

Warning: ‘beta_dt’ may be used uninitialized in this function [-Wmaybe-uninitialized]
mpif90 -Isrc/solid_solver/ -g -Jobj -Wuninitialized -fimplicit-none -fbounds-check -g -ggdb -fbacktrace -O3 -I/home/balbir/src/p3dfft-2.7.9/include -I/home/balbir/src/fftw-3.3.9/include -cpp -I/home/balbir/src/hdf5-1.12.1/include -c -o obj/solid_solver.o src/solid_solver/solid_solver.f90 -L/home/balbir/src/p3dfft-2.7.9/lib -lp3dfft -L/home/balbir/src/fftw-3.3.9/lib -lfftw3 -L/home/balbir/src/hdf5-1.12.1/lib -lhdf5_fortran -lhdf5 -llapack -lblas -lz -ldl -lm
plate_geometry.f90:218:0:

Warning: ‘__result_z_bottom’ may be used uninitialized in this function [-Wmaybe-uninitialized]
plate_geometry.f90:172:0:

note: ‘__result_z_bottom’ was declared here
plate_geometry.f90:168:0:

Warning: ‘__result_z_top’ may be used uninitialized in this function [-Wmaybe-uninitialized]
plate_geometry.f90:123:0:

note: ‘__result_z_top’ was declared here
mpif90 -Isrc/flexible_solver/ -g -Jobj -Wuninitialized -fimplicit-none -fbounds-check -g -ggdb -fbacktrace -O3 -I/home/balbir/src/p3dfft-2.7.9/include -I/home/balbir/src/fftw-3.3.9/include -cpp -I/home/balbir/src/hdf5-1.12.1/include -c -o obj/flexible_solver.o src/flexible_solver/flexible_solver.f90 -L/home/balbir/src/p3dfft-2.7.9/lib -lp3dfft -L/home/balbir/src/fftw-3.3.9/lib -lfftw3 -L/home/balbir/src/hdf5-1.12.1/lib -lhdf5_fortran -lhdf5 -llapack -lblas -lz -ldl -lm
mpif90 -g -Jobj -Wuninitialized -fimplicit-none -fbounds-check -g -ggdb -fbacktrace -O3 -I/home/balbir/src/p3dfft-2.7.9/include -I/home/balbir/src/fftw-3.3.9/include -cpp -I/home/balbir/src/hdf5-1.12.1/include -c -o obj/turbulent_inlet.o src/turbulent_inlet.f90 -L/home/balbir/src/p3dfft-2.7.9/lib -lp3dfft -L/home/balbir/src/fftw-3.3.9/lib -lfftw3 -L/home/balbir/src/hdf5-1.12.1/lib -lhdf5_fortran -lhdf5 -llapack -lblas -lz -ldl -lm
mpif90 -g -Jobj -Wuninitialized -fimplicit-none -fbounds-check -g -ggdb -fbacktrace -O3 -I/home/balbir/src/p3dfft-2.7.9/include -I/home/balbir/src/fftw-3.3.9/include -cpp -I/home/balbir/src/hdf5-1.12.1/include -c -o obj/passive_scalar.o src/passive_scalar.f90 -L/home/balbir/src/p3dfft-2.7.9/lib -lp3dfft -L/home/balbir/src/fftw-3.3.9/lib -lfftw3 -L/home/balbir/src/hdf5-1.12.1/lib -lhdf5_fortran -lhdf5 -llapack -lblas -lz -ldl -lm
mpif90 -Isrc/wavelets/ -g -Jobj -Wuninitialized -fimplicit-none -fbounds-check -g -ggdb -fbacktrace -O3 -I/home/balbir/src/p3dfft-2.7.9/include -I/home/balbir/src/fftw-3.3.9/include -cpp -I/home/balbir/src/hdf5-1.12.1/include -c -o obj/wavelet_library.o src/wavelets/wavelet_library.f90 -L/home/balbir/src/p3dfft-2.7.9/lib -lp3dfft -L/home/balbir/src/fftw-3.3.9/lib -lfftw3 -L/home/balbir/src/hdf5-1.12.1/lib -lhdf5_fortran -lhdf5 -llapack -lblas -lz -ldl -lm
IWT3_PO.f90:186:0:

Warning: ‘iy’ may be used uninitialized in this function [-Wmaybe-uninitialized]
IWT3_PO.f90:186:0:

Warning: ‘iy’ may be used uninitialized in this function [-Wmaybe-uninitialized]
IWT3_PO.f90:179:0:

note: ‘iy’ was declared here
mpif90 -g -Jobj -Wuninitialized -fimplicit-none -fbounds-check -g -ggdb -fbacktrace -O3 -I/home/balbir/src/p3dfft-2.7.9/include -I/home/balbir/src/fftw-3.3.9/include -cpp -I/home/balbir/src/hdf5-1.12.1/include -c -o obj/krylov_time_stepper.o src/krylov_time_stepper.f90 -L/home/balbir/src/p3dfft-2.7.9/lib -lp3dfft -L/home/balbir/src/fftw-3.3.9/lib -lfftw3 -L/home/balbir/src/hdf5-1.12.1/lib -lhdf5_fortran -lhdf5 -llapack -lblas -lz -ldl -lm
mpif90 -g -Jobj -Wuninitialized -fimplicit-none -fbounds-check -g -ggdb -fbacktrace -O3 -I/home/balbir/src/p3dfft-2.7.9/include -I/home/balbir/src/fftw-3.3.9/include -cpp -I/home/balbir/src/hdf5-1.12.1/include -c -o obj/hdf5_wrapper.o src/file_io/hdf5_wrapper.f90 -L/home/balbir/src/p3dfft-2.7.9/lib -lp3dfft -L/home/balbir/src/fftw-3.3.9/lib -lfftw3 -L/home/balbir/src/hdf5-1.12.1/lib -lhdf5_fortran -lhdf5 -llapack -lblas -lz -ldl -lm
src/file_io/hdf5_wrapper.f90:5:6:

use hdf5
1
Fatal Error: Can't open module file ‘hdf5.mod’ for reading at (1): No such file or directory
compilation terminated.
Makefile:247: recipe for target 'obj/hdf5_wrapper.o' failed
make: *** [obj/hdf5_wrapper.o] Error 1
balbir@quanta:~/FLUSI$

read_ini_file_mpi

In read_ini_file_mpi, the first check
inquire ( file=file, exist=exists )
if ( exists .eqv. .false.) then
write (*,'("ERROR! file: ",A," not found")') trim(adjustl(file))
call MPI_abort(MPI_COMM_WORLD, 86552, mpicode)
endif
is redundant and, in addition, the code fails at startup if the mpi processes don't share the same disk space. Maybe remove these lines.

Does this open source project support the study of the effect of surface roughness on the deformation behavior of flexible plates in flow fields?

Dear developers,
It is my honor to write this letter! I hope to investigate the effect of surface roughness on the deformation behavior of flexible plates in flow fields. However, due to a lack of understanding of the underlying logic of the project, I am not sure whether this open project can achieve my expected goals and whether there is complete validation of reference data and literature. I hope to receive a response from the developers, and I will be very grateful! Thank you!

Unit tests

2 tests fail on mesocentre:

[dkolom@login tests]$ ./unittest.sh
Unit-testing script for flusi/mhd pseudospectators.

OK Running test: solid_model.sh, log in: solid_model.log
OK Running test: jerry.sh, log in: jerry.log
OK Running test: fruitfly_mask.sh, log in: fruitfly_mask.log
OK Running test: fruitfly_mask2.sh, log in: fruitfly_mask2.log
OK Running test: scalar.sh, log in: scalar.log
OK Running test: vortexring1_AB2.sh, log in: vortexring1_AB2.log
OK Running test: vortexring2_RK2.sh, log in: vortexring2_RK2.log
OK Running test: vortexring3_EE1.sh, log in: vortexring3_EE1.log
OK Running test: vortexring4_sponge.sh, log in: vortexring4_sponge.log
OK Running test: sphere_sponge_RK2.sh, log in: sphere_sponge_RK2.log
OK Running test: sphere.sh, log in: sphere.log
FAIL Running test: sphere_restart.sh, log in: sphere_restart.log
OK Running test: mhdorszagtang.sh, log in: mhdorszagtang.log
OK Running test: swimmer1_iteration.sh, log in: swimmer1_iteration.log
OK Running test: swimmer2_staggered.sh, log in: swimmer2_staggered.log
OK Running test: swimmer3_semiimplicit.sh, log in: swimmer3_semiimplicit.lo g
FAIL Running test: insect.sh, log in: insect.log
OK Running test: insect_takeoff.sh, log in: insect_takeoff.log

Time used in tests: 307 seconds

Total number of tests: 18
Total number successful: 16
Total number failed: 2
NOT ALL TESTS PASSED: DANGER! DANGER!

Portability of the new version

The new version is much less portable. In the future development I think we should avoid using functions that are only supported by few compilers. It is really annoying to download the new version of FLuSI and suddenly see that it doesn't work.
Do we really have to use iso_fortran_env? If so, please include the module file it in the repository.

Insects: angle convention

In the SISC paper, we published the insect module. All angles are defined positive according to the right hand rule, except the deviation angle. The code has to be updated to take this definition into account.

A switch
angles_convention=flusi; aerodnautics; SISC;
will be added to the parameter file to switch between angle conventions. The flight mechanics community will find negative body pitch angle = upward pointing nose confusing

Order of loops

Loops like
do ix=ra(1),rb(1)
do iy=ra(2),rb(2)
do iz=ra(3),rb(3)
...
should be changed to
do iz=ra(3),rb(3)
do iy=ra(2),rb(2)
do ix=ra(1),rb(1)
...
for better efficiency

Flusi crashes at runtime

Sorry, but the code stopped working on my workstation after December commits.

Bounding box is:
xwmin=-3.40540890E-01 xwmax= 1.33859511E-01
ywmin= 5.26591479E-02 ywmax= 1.00027137E+00
zwmin=-2.08333333E-02 zwmax= 2.08333333E-02

Insect module: Setup_Wing_Fourier_coefficients
Wing shape is bumblebee
nfft_wings= 25

At line 89 of file btran.F90
Fortran runtime error: Attempting to allocate already allocated variable 'buf'

Primary job terminated normally, but 1 process returned
a non-zero exit code.. Per user-direction, the job has been aborted.

At line 89 of file btran.F90
Fortran runtime error: Attempting to allocate already allocated variable 'buf'
At line 89 of file btran.F90
Fortran runtime error: Attempting to allocate already allocated variable 'buf'
At line 89 of file btran.F90
Fortran runtime error: Attempting to allocate already allocated variable 'buf'

mpirun detected that one or more processes exited with non-zero status, thus causing
the job to be terminated. The first process to do so was:

Process name: [[876,1],3]
Exit code: 2

Passive Scalar

In most places, we did not advance the passive scalar computation for new code versions, it is mainly untested in FSI computation, also in backuping/resume

so, before using the passive scalar seriously, be sure to update the code accordingly.

it might also be better to merge pseudospectators/MISTRALs FD-based RHS at some point, since it is a huge waste of resources to compute the passive scalar with Fourier methods (it does not involve a Poisson eqn!)

FSI3D: check angular velocity

In the insect module, we had issues with the angular velocity, which was set to
rot = (/ alpha_dt, phi_dt, theta_dt /)
or something like that, not exactly this line.
in the FSI3D module, we also allow rotation of the relative system in the same spirit, but we need to revise the angular velocity; it is not used currently.

FSI3D: relative system

in the FSI3D module, we set up the beam reference frame in the same spirit as we do for the insect body, even with the same notation.
However, the BEQ solver was originally for 2D codes, where we didn't implement such a functionality. The oddity is now that in
subroutine mouvement
we set the leading edge coordinate to zero, even for a heaving motion. the same for the velocity. only the acceleration is non-zero, since it enters the BC for the BEQ
both are set in
subroutine plate_coordinate_system
this is however confusing and should be altered

basic_file_routines.f90

File src/file_io/basic_file_routines.f90 is now empty. Why was it necessary to move its contents somewhere else? Where? Do we need this empty file any longer?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.