The CISM Code Infrastructure
Bob Weigel
The CISM Knowledge Transfer Short Course
AFWA Omaha, November 2-3, 2005
• Sun to Earth Numerical Modeling
– Model Overview
– Pairwise Couplings
• Coronal and Heliosphere Model Coupling
• Magnetosphere and Thermosphere-Ionosphere Coupling
• Magnetosphere and Inner Magnetosphere Model Coupling
• The CISM Forecast Model
• Visualization Products
CISM Heliospheric Models (CORHEL 1.0)
Solar Corona Model Magnetohydrodynamics
Around a Sphere (MAS)
Linker et al., 1999; Mikic et al., 1999;
Riley et al., 2001
Solar Wind Model (ENLIL - Sumerian wind deity)
Odstrcil and Pizzo, 1999; Odstrcil et al., 2002
CISM Geospace Models (LTR 1.0)
Magnetosphere Model
Fedder and Lyon, 1995;
Lyon et al., 1998; 2004
Rice Convection Model
Wolf and Spiro, 1987;
Toffoletto et al., 2004
Thermosphere/Ionosphere Model
Thermosphere-Ionosphere Nested Grid
Roble et al., 1988; Wang et al., 1999
Numerical Model Chain (CISM 1.0)
Solar Corona Model
B, V, , p
Solar Wind Model
B, V, , T
Magnetosphere Model
J||, , T
MagnetosphereIonosphere Coupler
, , F
B, , p
, P, H
P, H
Thermosphere/Ionosphere Model
, p
Inner Magnetosphere Model
CISM Numerical Code Coupling Framework
• Need to develop programming paradigm which allows for efficient
coupling of models and is flexible enough to allow adding new physics and
efficient transmission of information among codes
interpolation of data between grids
translation of physical variables between codes
control mechanisms to synchronize execution and interaction between codes
minimal modifications to existing code base
• Intercomm – University of Maryland – A. Sussman
– Solution to the MxN problem in coupling parallel codes
– Will address the control issues
• Overture - LLNL – B. Henshaw & D. Quinlan
– C++ framework for solving differential equations on overset grids
– Used to handle interpolation between model grids
Framework Example
Overture grid functions identify
regions of overlap between models
as well an interpolatant
Intercomm creates data descriptor
to determine how to move data in
regions of overlap between coupler
and models A & B
Applied Intercomm library to test case based upon splitting 2 fluid MHD simulation
Overture application being developed to replace coupling infrastructure in CMIT
The Forecast Model Concept
(From Baker et al., 2004))
a community-developed
set of data, models, and
data and model explorers
• Needed to create a visualization and data analysis tool which could be used
by validation team as well as model developers
– Used Open DX and Octave as a basis
• Import modules currently implemented
– RCM and TIEGCM are under development
• Also includes and extensive collection of observations and tools for
calculating metrics and skill scores
• KT thrust is developing ‘push button’ installation process
– includes examples and documentation
– Available for download from
• User group with mailing list and ‘network’ archive
CISM_DX Lead Developers
Michael Wiltberger – NCAR/HAO
Michael Gehmeyr - CU/LASP and NOAA/SEC
Bob Weigel - CU/LASP
CISM_DX Contributors
Fabio Acero
Scot Elkington
Tim Guild
Elly Huang
John Lyon
Bob McPherron
Asher Pembroke
Marius Schamschula
Dimitris Vassiliadis
Logo by Susanna Lamey
• A collection of analysis and visualization tools by
scientists, that use, or can be compiled with, Open
Source Software on multiple operating systems. The
tools are integrated.
•CISM-DX is a software package that contains
–Extensions to Octave and OpenDX for import and
analysis of numerical and measurement data
–Extensive suite of networks and programs for both
novice and expert users
–Extensive set of time series data in a common format
We take a large body of data and
programs, in many formats and
languages, and write high-level
interfaces, tutorials, and expert-use
demos for their use.
• It is not a web page with a list packages in source code format.
These exist. It is not a web page for obtaining a restricted set
of information.
• It is not a set of libraries that is called by a Java or other frontend (examples: VisBARD, IDV, SSC 3D Orbit Viewer,
AFGeospace). Although it could be.
• It is a set of source codes, pre-compiled for several operating
systems, usage examples, educational tutorials, and programs
that integrate the codes written in different languages. What
calls the library (or the “front-end”) depends on the
community - the library is separated from the GUI – the
libraries are integrated so that the GUI can easily change!
Code distributed with CISM_DX
• 50 .m files compatible with Octave/Matlab
• 30 C/Fortran codes wrapped with OpenDX or Octave
• 50 .net files for visualization in OpenDX
• 1000 years (~1 GB compressed) of time series data
@ 1-minute resolution
• 2 .pro files for IDL
• 10 .pl files for data file manipulation with Perl
Datasets distributed
with CISM_DX
Numerous data sets from across the community where
collected moved on uniformly spaced time grids and
stored in HDF files
– Provides the user with essential data quickly so
they can move onto doing science with having to
learn new data formats
• Dataset includes
– Satellite Observations
– Ground Magnetometer
– Indices
• AE, Dst, Ap, F10.7, aa, am
• Space physics needs a tool for visualizing and
analyzing numerical and empirical models as well as
observational data
– Must support all levels of users from novice to
– Must be inexpensive
– Should draw upon the previous work and knowledge
of the space physics community
Why continued
• It has been successful in CISM
– In allowing scientists to have access to Sun-Earth analysis
programs without having to learn specialized data formats
and data sets
– In getting students working with expert tools
– In speeding up model transition into operations
• The number of data formats and programming languages scale
with time. Integration can often be more important than
optimization (of data formats, download speed, etc.) Without a
framework, this bottom-up approach is the best alternative
(and some may say better).
The CISM_DX contribution framework
Our approach:
Give researchers and students a useful
tool and a mechanism and
framework for improving upon it.
The CISM_DX contribution framework
User develops tool using software in the CISM_DX package.
Submits a contribution package
Package is review and suggestions for improvement are made
Final package is posted to CISM_DX web site and announced on
email list.
Developers meet to decide what and how parts of contribution can be
integrated in a future CISM_DX release.
• Ideally all contributions would be in Octave, OpenDX, C, Fortran 77, Perl,
… anything that has cross-platform support and can be executed,
compiled, or wrapped with Open Source Software.
• However, there are many useful IDL and Matlab-specific codes that we
would consider adding (especially graphics tools). They may not be as
well-integrated as the other programs, but will still find use.
Web page:
Source code and pre-compiled binaries
available for version 0.43. Version 0.5
expected in the end of June.
OSX and Windows XP versions in August.