11,367 research outputs found
Application of Modern Fortran to Spacecraft Trajectory Design and Optimization
In this paper, applications of the modern Fortran programming language to the field of spacecraft trajectory optimization and design are examined. Modern object-oriented Fortran has many advantages for scientific programming, although many legacy Fortran aerospace codes have not been upgraded to use the newer standards (or have been rewritten in other languages perceived to be more modern). NASA's Copernicus spacecraft trajectory optimization program, originally a combination of Fortran 77 and Fortran 95, has attempted to keep up with modern standards and makes significant use of the new language features. Various algorithms and methods are presented from trajectory tools such as Copernicus, as well as modern Fortran open source libraries and other projects
IMPLEMENTATION OF THE ROOT BISECTION COMPUTATIONAL PHYSICS METHOD FOR THE DETERMINATION OF ROOTS OF NON-LINEAR EQUATIONS USING JAVA
Advancement in programming and language development has made possible improved efficiency and accuracy in solving numerical problems and hence the numerical computation of physical problems as used in Computational Physics. Hitherto, languages such as Basic, Fortran, C, among others, have commonly been employed in solving numerical problems. In this work, Java, a modern object oriented language was deployed in solving some physical problems, specifically, determination of roots of non-linear equations using the Root-Bisection Method. A comparison between results obtained showed faster convergence and greater accuracy using Java than as obtained using Fortran.
 
Object-oriented construction of a multigrid electronic-structure code with Fortran 90
We describe the object-oriented implementation of a higher-order
finite-difference density-functional code in Fortran 90. Object-oriented models
of grid and related objects are constructed and employed for the implementation
of an efficient one-way multigrid method we have recently proposed for the
density-functional electronic-structure calculations. Detailed analysis of
performance and strategy of the one-way multigrid scheme will be presented.Comment: 24 pages, 6 figures, to appear in Comput. Phys. Com
Object-oriented implementations of the MPDATA advection equation solver in C++, Python and Fortran
Three object-oriented implementations of a prototype solver of the advection
equation are introduced. The presented programs are based on Blitz++ (C++),
NumPy (Python), and Fortran's built-in array containers. The solvers include an
implementation of the Multidimensional Positive-Definite Advective Transport
Algorithm (MPDATA). The introduced codes exemplify how the application of
object-oriented programming (OOP) techniques allows to reproduce the
mathematical notation used in the literature within the program code. A
discussion on the tradeoffs of the programming language choice is presented.
The main angles of comparison are code brevity and syntax clarity (and hence
maintainability and auditability) as well as performance. In the case of
Python, a significant performance gain is observed when switching from the
standard interpreter (CPython) to the PyPy implementation of Python. Entire
source code of all three implementations is embedded in the text and is
licensed under the terms of the GNU GPL license
Programming Language Feature Agglomeration
Feature-creep is a well-known phenomenon in software systems. In this paper, we argue that feature-creep also occurs in the domain of programming languages. Recent languages are more expressive than earlier languages. However recent languages generally extend rather than replace the syntax (sometimes) and semantics (almost always) of earlier languages. We demonstrate this trend of agglomeration in a sequence of languages comprising Pascal, C, Java, and Scala. These are all block-structured Algol-derived languages, with earlier languages providing explicit inspiration for later ones. We present empirical evidence from several language-specific sources, including grammar definitions and canonical manuals. The evidence suggests that there is a trend of increasing complexity in modern languages that have evolved from earlier languages
RunMC - an object-oriented analysis framework for Monte Carlo simulation of high-energy particle collisions
RunMC is an object-oriented framework aimed to generate and to analyse
high-energy collisions of elementary particles using Monte Carlo simulations.
This package, being based on C++ adopted by CERN as the main programming
language for the LHC experiments, provides a common interface to different
Monte Carlo models using modern physics libraries. Physics calculations
(projects) can easily be loaded and saved as external modules. This simplifies
the development of complicated calculations for high energy physics in large
collaborations.This desktop program is open-source licensed and is available on
the LINUX and Windows/Cygwin platforms.Comment: 15 pages, 1 eps figure, accepted by Comp. Phys. Commu
Plyades: A Python Library for Space Mission Design
Plyades: A Python Library for Space Mission Design Designing a space mission
is a computation-heavy task. Software tools that conduct the necessary
numerical simulations and optimizations are therefore indispensable. The
usability of existing software, written in Fortran and MATLAB, suffers because
of high complexity, low levels of abstraction and out-dated programming
practices. We propose Python as a viable alternative for astrodynamics tools
and demonstrate the proof-of-concept library Plyades which combines powerful
features with Pythonic ease of use
- …