Creating and Linking Components in ESMF and CCA - PowerPoint PPT Presentation

1 / 14
About This Presentation
Title:

Creating and Linking Components in ESMF and CCA

Description:

ESMF likes uniform grids of variables. ... Get a sedflux handle and convert to load grid. Change elevations in sedflux ... Grid manipulation. Timers. States ... – PowerPoint PPT presentation

Number of Views:16
Avg rating:3.0/5.0
Slides: 15
Provided by: erich46
Category:

less

Transcript and Presenter's Notes

Title: Creating and Linking Components in ESMF and CCA


1
Creating and Linking Components in ESMF and CCA
  • Eric Hutton
  • Cyberinformatics and numerics working group
  • February 2008

2
My experiences creating and linking components
from existing code
River Plume Subsidence
3
A component is an encapsulated object defined
by its public interfaces
Component
Interface
Interface
4
sedflux links process models to build
stratigraphy on continental margins
5
To become an ESMF component, the sedflux
programming interface was refactored
Like many models, sedflux is called from the
command line,
6
The first difficulty was that sedflux is written
in c and ESMF in FORTRAN
Details in communicating between c and FORTRAN
can be both platform and compiler specific.
7
The second difficulty was that sedflux is not
grid based in the same way the ESMF is
sedflux thinks of the world as cubes of sediment
stacked on top of one another to form columns.
To get around this, sedflux kept track of its own
state through global variables.
8
To get around this, sedflux kept track of its own
state through global variables
ESMF application
For another component to interact with sedflux it
needs to know about this state variable. Imposes
sedfluxs implementation.
Not Good
9
In CCA, interfaces (or ports) define a component
A port is not an implementation only a
description. The description is written in
either SIDL (Scientific Interface Definition
Language) or XML.
A subsidence component could have a deflectionPort
interface deflectionPort extends gov.cca.Port
// Set constants from a file. int init( in
string file ) // Get the deflection (in
meters) due to the applied loads. int
get_deflection_in_m( inout rarrayltdouble,1gt
dz(len) , in
rarrayltdouble,1gt x(len) ,
in rarrayltdouble,1gt load(len) ,
in int len
)
10
A CCA component can both use and provide data
through a port
Provides a handle to thesedflux environment
Uses river dynamics to driveplume model
11
Smaller models provide another level of
granularity
Component
Port
12
Adding a subsidence model to sedflux requires a
converter component
Uses a sedfluxhandle
Provides a deflectiongrid
13
In CCA, components are connected using ccafe
ccafe can be run in gui mode (needs some work)
14
In conclusion, CCA offers more flexibility while
ESMF more infrastructure
But ESMF could be incorporated into CCA as a
toolkit
Questions?
Write a Comment
User Comments (0)
About PowerShow.com