A quick GdfidL tutorial
GdfidL license is installed on the
Faraday Cluster.
What is this software?
- GdfidL
is a 3D electromagnetic simulation code written in FORTRAN.
- It uses orthogonal mesh with diagonal fillings to discretise the geometry
- FDTD
(Finite Difference Time Domain) algorithm at the core
- Two solvers are included: eigenmode and time domain
- Can run in interactive mode
- Has a built-in interpreter with basic maths and powerful syntax (variables, ifs, loops)
- Runs on serial and parallel machines
- Includes a postprocessor for computing macro parameters and field-derived values (Q-values, wakepotentials)
What can you do with the code?
- Eigenmode simulations
- Eigenmodes => resonant frequencies
- Includes periodic boundary conditions
- Q, R/Q etc using the postprocessor
- Time domain simulations
- Fields can be excited by port modes or relativistic charges
- Scattering parameters (pp)
- Wake potentials (pp)
Before you really start with GdfidL
- If you don't have it, ask for a PP computing account
- Read the instructions on using the cluster
- To access the cluster login into
linappserv0.pp.rhul.ac.uk
, don't forget the -Y
option if you want to work with the graphics
- You have to run a script in
~george/scripts/sshforcluster.sh
in order to allow passwordless connections between the cluster nodes. Update: USE THIS COPY sshforcluster.sh
- Create a file .mpd.conf in your home directory containing
MPD_SECRETWORD=somepassword
-- somepassword
is your unique identifier, but does not have to be a super-high level password
- Add some environment variables to your shell's start-up file using this example
- In
$GDFIDL_HOME
you can find the manual and the tutorial. These are large documents, so don't print them if you don't really need to
- Start GdfidL in the interactive mode just typing
gd1
to check if all is set up correctly
- In principle, the whole geometry can be created in the interactive mode, but it's a lot more efficient to use input files
- Use
Ctrl-D
to exit
Creating the geometry
- For checking the geometry and really small tasks the code can be run from the command line
gd1 < inputfile.gdf | tee out
(note that the text output will be copied in the file out
)
- Anything bigger MUST be submitted to the cluster's queue manager
- Use Waveguide Modes Example or Pillbox Cavity Example as a starting point for eigenmode computations (think frequencies, modes, Q-values)
- Use Waveguide adapter example or Wakefield example for time-domain simulations (time varying signals, S-parameters, wakes)
- These examples cover the minimum, consult the manual for more information!
Submitting your job to the queue
- For the cluster to be used efficiently, there is a queue manager - program that manages the order in which the jobs run on the cluster
- Use this Queue submission script for submitting GdfidL jobs
- Type
qsub script_name
to submit the job to the queue
- Use
qstat
to see the status of the cluster's queues (or qstat | grep username
to filter your jobs only or qstat -f jobid
to see the status of a particular job)
- Update: an improved script and example file using local
/data
directories on the cluster
Post-processing
- Start the postprocessor typing in
gd1.pp
- You can make your life easier pre-loading some scripts and your last computation using the postprocessor profile, see Postprocessor Profile Example
- Some of the most useful sections of the postprocessor are
-3darrowplot
-- plot 3-dimensional fields, -sparameter
-- calculate S-parameters from time-domain signals, -wakes
-- calculate wakes from the stored field data, etc
- There are also some useful scripts for calculating Q-values and shunt impedances in
$GDFIDL_HOME/postprocessor-macros
, using these as examples you can write your own
- The scripts are executed with the
call
command, for example, to calculate the Q-value of mode number 1 you would type call QValue(1)
Afterword
This is a VERY brief description, the manual is 200 pages long, so keep it handy, there are many features that may be useful for your particular task. Once you have gone through the examples, see me (Alexey.Lyapin (at) rhul.ac.uk) to discuss the details of your problem. I can contact the developer if I don't know the answer, but can certainly help with general questions.