Skip to main content
Search Context

Simulated Cometary Photometry

Abstract

The Fortran programming language has long been used as a general-purpose and scientific computing language. It is an older programming language that gained popularity through its use in the scientific community for its highly-optimized engineering and scientific simulations. The problem with Fortran however, is that it is an outdated language lacking many modern features. Thus, the effort to translate significant legacy Fortran code, such as the comet simulation code, into a modern language such as Matlab or Python is apparent. This code, originally written by Nalin Samarasinha, is used to constrain the chemistry and dynamics of comets based on certain parameters. Translating it (porting it) to a modern language would be invaluable, as it would allow easier portability and extension between modern programming languages and allow for modern parallel computing pipelines to be used for increased performance. The porting of this legacy code to Matlab is completed and results from both versions are compared throughout the parameter space available as input to the code.

Background and Motivation

Schematically, comets comprise the nucleus, the coma, and one or more tails. The nucleus is the frozen, solid object generally composed of early-solar-system debris. As the nucleus of a comet approaches the Sun, solar radiation can get intense enough to allow for the sublimation of frozen gases from the nucleus. The tenuous atmosphere that may form as a result is called the comet coma. From Earth, we see the coma since it is (a) much larger than the nucleus and (b) composed of more photo-active particles which may be the result of the photo-dissociation of frozen gas molecules. 

From ground-based observatories, we are forced to learn all we can about the nucleus from the coma. The movement of the nucleus about its own center can be inferred from changes to the coma morphology. At first glance, they come to seem to be fairly homogenous. It isn’t easy to immediately find discernable features that can be used to track any underlying movement.

Cometary jets are anomalously dense regions of photo-active particles ejected from highly ‘active’ regions on the nucleus surface. With proper imaging and careful analysis, these jets can be used to track changes in coma morphology. With a sufficient understanding of the dynamics of the nucleus, we can deduce dynamical conditions beyond the outer solar system. Furthermore, the presence of these jets represents an opportunity for chemical analysis and constraint of early solar system chemical models.

Cometary jets are anomalously dense regions of photo-active particles ejected from highly ‘active’ regions on the nucleus surface. With proper imaging and careful analysis, these jets can be used to track changes in coma morphology. With a sufficient understanding of the dynamics of the nucleus, we can deduce dynamical conditions beyond the outer solar system. Furthermore, the presence of these jets represents an opportunity for chemical analysis and constraint of early solar system chemical models.

In 1991, Nalin S. developed a piece of FORTRAN90 code that allows the user to simulate observations of the coma arising from a spherical nucleus with specifications on the observation platform, Sun-Earth-Comet geometries, active region size and location, the composition of ejected particles, and dynamics of the nucleus [1].

This project focuses on the porting of Dr. S’s code to a modern language to allow for future extension and parallelization.

Porting Methods

Translating it (porting it) to a modern language would be invaluable, as it would allow easier portability and extension between modern programming languages and allow for modern parallel computing pipelines to be used for increased performance. Online whiteboards such as “Miro” had been utilized to be able to display technical functions within the code, such as what occurs during long loop iterations and what specific calculations are being made. This streamlined the process of translating the code and allowed for a better understanding of the comet code’s individual functions.

To the left is an example of how online whiteboards had been utilized to give a visual understanding of the code’s functions, and above is how the same functions were then integrated into MATLAB. More validation must be done to ensure that the ported MATLAB code reproduces the same results as the original code. After this, future work can be dedicated to parallelizing this code with MATLAB’s Parallel Toolbox or to generalizing the model of the comet jets to allow for non-spherical nuclei or multiple chemical species. Another step forward with this project would be the further optimization of this code within MATLAB and possibly attempting a python version of the original comet code as well.

Results

Below to the left is a jet from comet P252/LINEAR as seen by the Hubble Space Telescope (HST) [2], and on the right is our simulated comet coma morphology for comparison generated with MATLAB.

This is a visual comparison between the output of our pipeline and a coma observation by HST. Our validation study is an analysis of the MSE between identical parameter runs on FORTRAN90 and MATLAB.

Acknowledgments

A big thank you to Nalin Samarasinha and the UMBC Observatory for helping us get this far with this project.
The computing hardware used in this work is part of the UMBC High-Performance Computing Facility (HPCF). See hpcf.umbc.edu for more information on HPCF and the projects using its resources.

 

Written 20230309 by Onkar Rekhi