Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Jim Xia is active.

Publication


Featured researches published by Jim Xia.


ACM Transactions on Mathematical Software | 2010

Design patterns for multiphysics modeling in Fortran 2003 and C

Damian W. I. Rouson; Helgi Adalsteinsson; Jim Xia

We present three new object-oriented software design patterns in Fortran 2003 and C++. These patterns integrate coupled differential equations, facilitating the flexible swapping of physical and numerical software abstractions at compile-time and runtime. The Semi-Discrete pattern supports the time advancement of a dynamical system encapsulated in a single abstract data type (ADT). The Puppeteer pattern combines ADTs into a multiphysics package, mediates interabstraction communications, and enables implicit marching even when nonlinear terms couple separate ADTs with private data. The Surrogate pattern emulates C++ forward references in Fortran 2003. After code demonstrations using the Lorenz equations, we provide architectural descriptions of our use of the new patterns in extending the Rouson et al. [2008a] Navier-Stokes solver to simulate multiphysics phenomena. We also describe the relationships between the new patterns and two previously developed architectural elements: the Strategy pattern of Gamma et al. [1995] and the template emulation technique of Akin [2003]. This report demonstrates how these patterns manage complexity by providing logical separation between individual physics models and the control logic that bridges between them. Additionally, it shows how language features such as operator overloading and automated memory management enable a clear mathematical notation for model bridging and system evolution.


Computing in Science and Engineering | 2012

This Isn't Your Parents' Fortran: Managing C++ Objects with Modern Fortran

Damian W. I. Rouson; Karla Morris; Jim Xia

Modern Fortran automates dynamic memory deallocations, except in two cases: memory allocated via pointers and via a second language at the request of a Fortran driver. This article focuses on the second exception and presents a reference-counting architecture that requires minimal user intervention to safely free memory if and only if no references remain.


computational science and engineering | 2011

On the object-oriented design of reference-counted shadow objects

Karla Morris; Damian W. I. Rouson; Jim Xia

The object-oriented programming (OOP) constructs of Fortran 2003 facilitate an elegant memory management solution of particular value when Fortran drives a second language that does not provide automatic garbage collection. More specifically, when Fortran derived types shadow a companion languages objects, safe and economical execution requires destroying the companion objects when and only when all corresponding shadows have expired. This paper focuses on the object-oriented design (OOD) of reference-counted shadow objects. The presented class structure automatically controls the lifetimes of any shadow objects that extend a universal parent class. The paper also discusses a relevant use case in ForTrilinos, a set of object-oriented Fortran interfaces to C++ packages in the Trilinos parallel numerical solver library1.


Archive | 2011

The Puppeteer Pattern

Damian W. I. Rouson; Jim Xia; Xiaofeng Xu

“Never be afraid to try something new. Remember, amateurs built the ark. Professionals built the Titanic.” Miss Piggy The Problem While the abstract calculus and strategy patterns apply to the integration of a single physics abstraction, our chief concern lies in linking multiple abstractions. This poses at least two significant software design problems. The first involves how to facilitate interabstraction communication. The GoF addressed interabstraction communication with the mediator pattern. When N objects interact, a software architect can reduce the N(N −1)+ associations between the objects to 2 N associations by employing a mediator . The mediator association count stems from the requirements that the Mediator know each communicating party and those parties know the Mediator. For example, in a mediator implementation presented by Gamma et al. (1995), the sender passes a reference to itself to the mediator . The sender must be aware of the mediator in order to know where to send the message. Likewise, the mediator must be aware of the sender in order to invoke methods on the sender via the passed reference. Figure 8.1 illustrates the associations in an atmospheric boundary layer model, wherein the air, ground, and cloud ADTs might solve equation sets for the airflow, ground transpiration, and discrete droplet motion, respectively. A second and conceptually more challenging problem concerns how one assembles quantities of an inherently global nature – that is, information that can only be determined with simultaneous knowledge of the implementation details of each of the single-physics abstractions.


Archive | 2011

Scientific Software Design: The Object-Oriented Way

Damian W. I. Rouson; Jim Xia; Xiaofeng Xu


international conference on conceptual structures | 2010

Object construction and destruction design patterns in Fortran 2003

Damian W. I. Rouson; Jim Xia; Xiaofeng Xu


Archive | 2012

This is not your parents' Fortran: Managing C++ objects with modern Fortran in the driver's seat.

Damian W. I. Rouson; Karla Morris; Jim Xia


Archive | 2011

Scientific Software Design by Damian Rouson

Damian W. I. Rouson; Jim Xia; Xiaofeng Xu


Archive | 2011

Scientific Software Design: Development Costs and Complexity

Damian W. I. Rouson; Jim Xia; Xiaofeng Xu


Archive | 2011

Scientific Software Design: Unified Modeling Language Elements

Damian W. I. Rouson; Jim Xia; Xiaofeng Xu

Collaboration


Dive into the Jim Xia's collaboration.

Top Co-Authors

Avatar

Damian W. I. Rouson

Sandia National Laboratories

View shared research outputs
Top Co-Authors

Avatar

Xiaofeng Xu

City University of New York

View shared research outputs
Top Co-Authors

Avatar

Karla Morris

City University of New York

View shared research outputs
Top Co-Authors

Avatar

Helgi Adalsteinsson

Sandia National Laboratories

View shared research outputs
Top Co-Authors

Avatar

Salvatore Filippone

University of Rome Tor Vergata

View shared research outputs
Researchain Logo
Decentralizing Knowledge