IMP5HCD - the IMP5 Composite Actor for Heating and Current Drive


Purpose Contact persons Input Output
Kepler-actor for integrated modelling of Heating and Current Drive (EC,LH,IC,NBI,alphas-heating) Thomas Johnson
Lorenzo Figini
EU-ITM Plasma bundle Required CPOs are: antennas, nbi, equilibrium, coreprof Subset of the EU-ITM Plasma bundle containing the CPOs: waves, distsource, distribution, coresource
The IMP5 Composite Actor for Heating and Current Drive is a multi layered composite actor. Each layer separates one different groups of models or codes, e.g.
  • the generation of CPOs (wave, distsource, distribution and coresource),
  • the different heating schemes,
  • ions and electrons solvers,
  • ...all the way down to the level of Actors for physics models.
The composite actor takes as input the standardized EU-ITM Plasma bundle (agreed upon at the Innsbruck code camp December 2010) and generates as output the CPOs waves, distsource, distribution and coresouce (bundled into a subset of the EU-ITM Plasma bundle).

The IMP5 Composite Actor for Heating and Current Drive is stored as part of the IMP5HCD-SA workflow.

The IMP5HCD include a number physics codes. For a schort description of these codes and contact information, follow this link.

As an example we have below illustration of some of the structure inside the composite actors for waves and the composite actor for distribution.

Physics actors in IMP5HCD

TopPreviousNext

Status 20130305. Some of these actor are not yet ported to the new Gateway in Garching. Note: the status is under constant development!

Code name Code Category Contact persons Short description
Gray EC/waves Lorenzo Figini GRAY is a quasi-optical ray-tracing code for electron cyclotron heating & current drive calculations in tokamaks. Documentation of code parameters.
ICcoup IC/coupling Thomas Johnson Simple model for the coupling waves from ion cyclotron antennas to the plasma.
Nemo NBI/souce Mireille Schneider Calculate the deposition rates of neutrals beam particles.
Nuclearsim nuclear/source Thomas Johnson Simple code for nuclear sources from thermal/thermal reactions. Documentation of code parameters
NBIsim NBI/source Thomas Johnson Simple Fokker-Planck code calculating the collisional ion and electron heating from a particle source, either NBI or nuclear.

Non-physics actors in IMP5HCD

TopPreviousNext

UNDER DEVELOPMENTS

Code name Code Category Contact persons Short description
writeECant Antennas / generator Lorenzo Figini Generates an EC antenna in the Antennas-cpo from code parameters (see documentation of code parameters)
writeICant Antennas / generator Roberto Bilato and Thomas Johnson Generates an IC antennas in the Antennas-cpo from code parameters (see documentation of code parameters)
nbisetup NBI / generator Otto Asunta and Thomas Johnson NBI-cpo generated from hard coded models for the JET and ITER systems. The selection of either JET or ITER is made using an integer input select_machine_ITER_JET, which is a global parameter of the workflow set in the composite actor Initial IMP5 state.
wallsetup WALL / generator Otto Asunta WALL-cpo generated from hard coded models for the JET and ITER systems. The selection of either JET or ITER is made using an integer input select_machine_ITER_JET, which is a global parameter of the workflow set in the composite actor Initial IMP5 state.
ICDEP Waves / generator Thomas Johnson Generates Waves-cpo with an IC wave field with Gaussian deposition profiles descibed through code parameters (see documentation of code parameters)
hcd2coresource coresource / datajoiner Thomas Johnson Generates a Coresource-cpo from input Distsource, Waves and Distribution cpos.
waves2source coresource / datajoiner Lorenzo Figini Generates a Coresource-cpo from input Waves cpo.
emptyantennas Antennas / generator Thomas Johnson Generates an empty Antennas cpo.
emptywall Wall / generator Thomas Johnson Generates an empty Wall cpo.
emptynbi NBI / generator Thomas Johnson Generates an empty NBI cpo.
emptywaves Waves / generator Thomas Johnson Generates an empty Waves cpo.
emptydistsource Distsource / generator Thomas Johnson Generates an empty Distsource cpo.
emptydistribution Distribution / generator Thomas Johnson Generates an empty Distribution cpo.
merge4antennas Antennas / merger Thomas Johnson Mergers two Antennas cpos.
merge4waves Waves / merger Thomas Johnson Mergers two Waves cpos.
merge4distsource Distsource / merger Thomas Johnson Mergers two Distsource cpos.
merge4distribution Distribution / merger Thomas Johnson Mergers two Distribution cpos.

Composite Actor for Waves

TopPreviousNext

Wave field solvers in the IMP5 Composite Actor for Heating and Current Drive are collected in a composite actor, which in turns separates the different heating schemes ICRF, LH and ECRH. The three waves fields are then joined by a datajoiner for the waves CPO.

As an example we here show how the ECRH composite actor select the physics code to use from a long list. The variable that determines the selection is a global parameter ec_wave_code, set at the top-level of the composite actor IMP5HCD. Note that if you run IMP5HCD in the ETS ec_wave_code is set on a higher level.

When selecting ec_wave_code=gray the workflow will entre the Gray model composite actor containing the Gray code, a ray tracer for EC waves.

Composite Actor for Fokker-Planck

TopPreviousNext

The composite actor for Fokker-Planck solvers are separated into solver for the electron and ion distribution function

As an example is shown below the composite actor for the ion-Fokker Planck solvers. This solvers allows two different ways of operation, either the full Fokker-Planck equation is solved including both wave field acceleration and particle source terms (the box "Ion Fokker-Planck wave + particle source" in the figure), or alternatively the two effects (wave acceleration and particle source terms) are treated seperately in two different solver (...in the figure).

Next looking more carefully what's inside e.g. the "Ion Fokker-Planck wave + particle source" box we find again two options for an Advanced Model, or an Empty CPO generator.

Finally, inside the Advanced model you find the fpsim code.

Handling of equilibria in the IMP5HCD composite actor

TopPreviousNext

2011-03-18: At the moment the equilibrium supplied to the IMP5HCD composite actor could either be stored on an or an grid. In collaboration with IMP12 it has been agreed that the IMP12 will supply actors that convert between the two coordinate systems. These actors will form an initialisation block in the beginning of the IMP5HCD composite actor, supplying it with both an and a gridded versions of the equilibrium.

2011-08-01: Composite actor has been constructed which generates two equilibrium cpos, use or an grids for 2d profiles. These two equilibrium cpos are stored as additional data in the EU-ITM Plasma bundle used inside IMP5HCD composite actor. The cpos are accessed though in.eq_rz or in.eq_rhotheta in a Kepler expression, where in is the modified EUITM-bundle. Note however, that at the moment this composite actor still only works in one direction; generating the equilibrium due to some problems with an actor.

2011-12-10: Composite actor for providing both and equilibrium grids implemented using the CHEASE actor.

CPOs-fields required for the IMP5HCD composite actor

TopPreviousNext

An Actor running under IMP5HCD have to fill in certain fields, or else the workflow will not work properly. Here follows a list of requirements in 4.08b, using Fortran notation; for C, Java, or matlab notation replace "%" by "." (a dot).

Error handling

TopPreviousNext

When building advanced workflows like the IMP5HCD it is imparative that the individual components are robust and behaves in a controlled manner, even when the input is outside the conditions for validity. For this reason the ITM strongly encourage defensive programming.

The output of any ITM actor should in addition always provide error messages the output CPOs. Every CPO therefore includes a derived datatype called codeparam (located directly under the root of every CPO), which contains the field output_flag in which the error flag should be stored, see above.

<any-cpo>%codeparam%output_flag Integer output flag:
0 means the run was successful and can be used in the rest of the workflow,
<0 means failure

last update: 2013-03-05 by tjohnson