This program aims to solve the diffusione equation
where
Recall that given a function
and it inverse as:
Therefore, taking the transform of the
i. e., the differential operator
in the direct space can be associated to the
Dependencies
Use:
make [mode]
with [mode]
:
- left blank to compile an homemade version (that is, a version which exploits only locally the FFTW functions and handles explicitly the communication between processes) to execute a FFT on a 3D grid
fftw3_mpi
to compile the FFTW routine which runs in parallel on a distributed 3D grid
This will produce the ./[version]diffusion.x
executable
Use:
make [version]run [iters=%d] [nx=%d] [ny=%d] [nz=%d] [dt=%d] [prc=%d]
where:
nx
,ny
andnz
dimensions of the griditers
number of iterationsdt
dimension of the single iteration time stepprc
number of processes
To test it is possible to pass the debug=yes
flag while making
make [version] debug=yes
and then run the [version]multiplication_debug.x
executable using mpirun
. It is also supported the command:
make [version]run debug=yes
which will compile (if necessary) and run immediately after.
Use make plot
to plot pretty things