Kyle Niemeyer Oregon State University

Total Page:16

File Type:pdf, Size:1020Kb

Kyle Niemeyer Oregon State University NRG A modular course on developing research software Kyle Niemeyer Oregon State University ! [email protected] " ! @kyleniemeyer ! niemeyer-research-group.github.io Motivation The stats: • 2009: 91% scientists consider research software important/very important1 • UK academics in 2014: 90% use software in research; 70% of them would find research impractical without it2 • US postdocs in 2017: 95% / 63% same3 But: practically no graduate students / researchers receive formal training in this area. (Contrast with typical experimental methods courses) 1 JE Hannay, HP Langtangen, et al. SECSE 2009. Vancouver, BC, 1–8. https://doi.org/10.1109/SECSE.2009.5069155 2 S Hettrick et al. UK Research Software Survey 2014. (2015) https://doi.org/10.7488/ds/253 3 U Nangia & DS Katz, WSSSPE 5.1 (2017) https://doi.org/10.5281/zenodo.814102 2 Computational Science? software / computational skills : computational science :: experimental skills : experimental science 3 https://edition.cnn.com/travel/article/spectacular-fountains/index.html needs http://artisanplumbing.ca Who am I? • Assistant Professor of Mechanical Engineering, Oregon State University • Research focuses on simulations and modeling of reacting fluid flows and chemical kinetics • Associate Editor-in-Chief, Journal of Open Source Software 5 https://github.com/kyleniemeyer Existing Resources • Software Carpentry workshops have become a popular way to teach fundamental skills: Unix/ command line, version control with Git, and Python programming • Similarly, Data Carpentry workshops for data science • For domain scientists: MolSSI Software Summer School 7 More (Static) Resources PERSPECTIVE Good enough practices in scientific computing Greg Wilson1, Jennifer Bryan2, Karen Cranston3, Justin Kitzes4, Lex Nederbragt5, Tracy K. Teal6 1 Software Carpentry Foundation, Austin, Texas, United States of America, 2 RStudio and Department of Statistics, University of British Columbia, Vancouver, British Columbia, Canada, 3 Department of Biology, Duke University, Durham, North Carolina, United States of America, 4 Energy and Resources Group, https://doi.org/10.1371/University of California, Berkeley, Berkeley journal.pcbi.1005510, California, United States of America, 5 Centre for Ecological and Evolutionary Synthesis, University of Oslo, Oslo, Norway, 6 Data Carpentry, Davis, California, United States of America These authors contributed equally to this work. * [email protected] Author summary Computers are now essential in all branches of science, but most researchers are never taught the equivalent of basic lab skills for research computing. As a result, data can get lost, analyses can take much longer than necessary, and researchers are limited in how effectively they can work with software and data. Computing workflows need to follow a1111111111 thesame practices aslabprojects and notebooks, withorganizeddata, documented steps, a1111111111 and the project structured for reproducibility, but researchers new to computing often a1111111111 don’t know where to start. This paper presents a set of good computing practices that a1111111111 every researchercan adopt, regardlessoftheir current levelof computational skill. These a1111111111 practices, which encompassdata management, programming, collaborating with col- leagues, organizing projects, tracking work, and writing manuscripts, are drawn from a wide varietyof published sources from our daily livesand from our work with volunteer organizations thathavedeliveredworkshopsto over 11,000people since 2010. Citation: Wilson G, Bryan J, Cranston K, Kitzes J, Nederbragt L, Teal TK(2017) Good enough practices in scientific computing. PLoS Comput Biol 13(6): e1005510.https://doi.org/10.1371/ Overview journal.pcbi.1005510 http://physics.codes We present a set of computingtools and techniquesthat every researcher can and should con- Editor: Francis Ouellette,Ontario Institute for sider adopting.Theserecommendationssynthesizeinspiration from our own work, from the Cancer Research, CANADA experiences of the thousands of people who have taken part in Software Carpentry and Data Published: June 22, 2017 Carpentry workshops over the past 6 years, and from a variety of other guides. Our recom- Copyright: 2017 Wilsonet al. This is an openmendations areaimedspecifically at people who arenew to research computing. access article distributed under the terms of the Creative Commons Attribution License, which Introduction permits unrestricted use,distribution, and reproductionhttps://doi.org/10.12688/f1000research.11407.1in any medium,provided the original Three years ago, a group of researchers involved in Software Carpentry and Data Carpentry Big influence on my class! author and source arecredited. wrote a paper called "Best Practices for Scientific Computing" [1]. That paper provided recom- Funding: The authors received no specific funding mendations for people who were already doing significant amounts of computation in their 8for this work. research. However, as computing has become an essential part of science for all researchers, Competing interests: The authors have declared there is a larger group of people new to scientific computing, and the question then becomes, that no competing interests exist. "where to start?" PLOS Computational Biology | https://doi.org/10.1371/journal.pcbi.1005510 June 22, 2017 1 / 20 My Solution: A 10-week (primarily) graduate course to fill this gap, using existing resources as inspiration/building blocks. 9 Course Philosophy • Main goal: teach students best practices and practical skills to develop useful, tested, and (potentially) sustainable research software. • Rather than give standalone assignments, all assigned work relates to a quarter-long project, which is intended to support their thesis research. • Also try to instill open science as the default—relatively early in students’ careers. • Classes mix a typical presentation-based lecture approach with interactive/hands-on work and discussion. 10 Topics Taught • Version control with Git • Working with files • Remote and collaborative version • Building command-line interfaces control with GitHub • Packaging and distributing your • Licensing and copyright Python software • Testing software, test coverage, • Introduction to parallel and continuous integration programming • Structuring Python packages • Open science, software citation, • Writing documentation and reproducibility best practices • Objects and classes in Python • Documentation with Sphinx 11 Example: module on testing https://softwaredevengresearch.github.io/lecture-packaging-testing/ Project • At beginning of class, students propose a project for the term connected to their thesis research. • This is submitted as a PR to the course_projects repo 29 Project Stages Project proposal Create project repo & fork to account Create first module with tests, submit as PR for review Configure continuous integration Create command-line interface Package software for distribution Configure Zenodo integration Write report and cite software 30 Results from 2018–2019 • Offered in Spring 2018 and Spring 2019 as “ME 599: Software Development for Engineering Research”. • (However, nothing specifically Mechanical Engineering —or even Engineering—about it.) • Enrollment: 17 students in 2018, 9 students in 2019. 31 Project Topics • designing detonation tubes • agent-learning for • calibrating blackbody autonomous path finding • extracting features with infrared cameras machine learning from • generating input for • simulating transient heat nuclear physics Monte-Carlo radiation transfer in a microchannel simulations transport • biomass cookstove • interfacing with an 8- • calculating solar-energy optimization tool channel digital pulse terms based on location • projectile testing prediction processor board analyzing radioxenon • transit system anomaly simulating and analyzing a spectra • • detection formula SAE vehicle • calculating deep-learning engine Automatic functional layers for multi-agent • design representation • optimizing and analyzing reinforcement learners wind-farm layouts • Heat exchanger analysis • analyzing solvent • analyzing spin stabilization extraction kinetics • Influx modeling for of solid rocket motors multiphase flows • simulating rapid • nodal quasi-diffusion compression machine • Control package for liquid rocket engine test stand solver for nuclear fission experiments32 Student composition 1st-year MS/PhD student 2nd-year MS/PhD student ≥3rd-year PhD student Undergraduate MEng 7% 4% 36% 32% 33 21% Whether students took Python class yes no 41% 59% 34 Comfort with command line I've used it, though I'm not exactly comfortable with it. I'm comfortable working on the command line, but not an expert What is the command line? I'm a command-line ninja � 4% 37% 59% 35 Student Feedback • In both cases, students rate the course as a whole highly • Comments suggest that all graduate students working with software/programming need this material • Some feelings of being too advanced for their experience level 36 Post-Course Work • In both classes so far, roughly half the students indicated that they plan to use and/or develop their packages further for their research • One ultimate goal: encourage submission to JOSS— one under review, and another to be submitted! 37 JOSS: Journal of Open Source Software • http://joss.theoj.org/ • Developer-friendly journal for research software packages • Affiliate of Open Source Initiative • Open access, no fees
Recommended publications
  • Easyaccess: Enhanced SQL Command Line Interpreter for Astronomical Surveys
    easyaccess: Enhanced SQL command line interpreter for astronomical surveys Matias Carrasco Kind1, Alex Drlica-Wagner2, Audrey Koziol1, and Don Petravick1 1 National Center for Supercomputing Applications, University of Illinois at Urbana-Champaign. 1205 W Clark St, Urbana, IL USA 61801 2 Fermi National Accelerator Laboratory, P. O. Box 500, DOI: 00.00000/joss.00000 Batavia,IL 60510, USA Software • Review Summary • Repository • Archive easyaccess is an enhanced command line interpreter and Python package created to Submitted: 00 January 0000 facilitate access to astronomical catalogs stored in SQL Databases. It provides a custom Published: 00 January 0000 interface with custom commands and was specifically designed to access data from the License Dark Energy Survey Oracle database, although it can easily be extended to another survey Authors of papers retain copyright or SQL database. The package was completely written in Python and support customized and release the work under a Cre- addition of commands and functionalities. Visit https://github.com/mgckind/easyaccess ative Commons Attribution 4.0 In- to view installation instructions, tutorials, and the Python source code for easyaccess. ternational License (CC-BY). The Dark Energy Survey The Dark Energy Survey (DES) (DES Collaboration 2005; DES Collaboration 2016) is an international, collaborative effort of over 500 scientists from 26 institutions in seven countries. The primary goals of DES are reveal the nature of the mysterious dark energy and dark matter by mapping hundreds of millions of galaxies, detecting thousands of supernovae, and finding patterns in the large-scale structure of the Universe. Survey operations began on on August 31, 2013 and will conclude in early 2019.
    [Show full text]
  • A Command-Line Interface for Analysis of Molecular Dynamics Simulations
    taurenmd: A command-line interface for analysis of Molecular Dynamics simulations. João M.C. Teixeira1, 2 1 Previous, Biomolecular NMR Laboratory, Organic Chemistry Section, Inorganic and Organic Chemistry Department, University of Barcelona, Baldiri Reixac 10-12, Barcelona 08028, Spain 2 DOI: 10.21105/joss.02175 Current, Program in Molecular Medicine, Hospital for Sick Children, Toronto, Ontario M5G 0A4, Software Canada • Review Summary • Repository • Archive Molecular dynamics (MD) simulations of biological molecules have evolved drastically since its application was first demonstrated four decades ago (McCammon, Gelin, & Karplus, 1977) and, nowadays, simulation of systems comprising millions of atoms is possible due to the latest Editor: Richard Gowers advances in computation and data storage capacity – and the scientific community’s interest Reviewers: is growing (Hospital, Battistini, Soliva, Gelpí, & Orozco, 2019). Academic groups develop most of the MD methods and software for MD data handling and analysis. The MD analysis • @amritagos libraries developed solely for the latter scope nicely address the needs of manipulating raw data • @luthaf and calculating structural parameters, such as: MDAnalysis (Gowers et al., 2016; Michaud- Agrawal, Denning, Woolf, & Beckstein, 2011); (McGibbon et al., 2015); (Romo, Submitted: 03 March 2020 MDTraj LOOS Published: 02 June 2020 Leioatts, & Grossfield, 2014); and PyTraj (Hai Nguyen, 2016; Roe & Cheatham, 2013), each with its advantages and drawbacks inherent to their implementation strategies. This diversity License enriches the field with a panoply of strategies that the community can utilize. Authors of papers retain copyright and release the work The MD analysis software libraries widely distributed and adopted by the community share under a Creative Commons two main characteristics: 1) they are written in pure Python (Rossum, 1995), or provide a Attribution 4.0 International Python interface; and 2) they are libraries: highly versatile and powerful pieces of software that, License (CC BY 4.0).
    [Show full text]
  • Ed 060 620 Author Title Institution Spons Agency Pub Date
    DOCUMENT RESUME ED 060 620 EM 009 626 AUTHOR Bork, Alfred M. TITLE Introduction to Computer Programming Languages. INSTITUTION California Univ., Irvine. Physics Computer Development Project. SPONS AGENCY National Science Foundation, Washington, D-C. PUB DATE Dec 71 NOTE 5p. JOURNAL CIT JCST; P 12-16 December 1971 EDRS PRICE MF-$0.65 HC-$3.29 DESCRIPTORS Computer Assisted Instruction; Computer Science Education; *Guides; *Programing; *Programing Languages ABSTRACT A brief introduction to computer programing explains the basic grammar of ccmputer language as well as fundamental computer techniques. What constitutes a computer program is made clear, then three simple kinds of statements basic to the computational computer are defined: assignment statements, input-output statements, and branching statements. A short description of several available computer languages is given along with an explanation of how the newcomer would make use of basic computer software. Finally, five different versions of a simple program (for solving the harmonic oscillator numerically) are given with comparison. (RB) 74.-E U.S. DEPARTMENT OF HEALTH. F749 EDUCATION & WELFARE erP\ e-"ri". "79' - A ott, Tritl OFFICE OF EDUCATION t,.4 taicta- THIS DOCUMENT HAS BEEN REPRO- DUCED EXACTLY AS RECEIVED FROM THE PERSON OR ORGANIZATION ORIG- '14r- C-1"?Fig ErtrIgf7t Or>re!9,1 2 INATING IT. POINTS OF VIEW OR OPIN- 616 ti LiS kC..".4 .2) szyj /ONS STATED DO NOT NECESSARILY cp-S.e REPRESENT OFFICIAL OFFICE OF EDU- CATION POSITION OR POLICY. By Affred M. Bork r,9 he digital computer is a powerful, calculating. andwhat the programmer wants it to do. For convenience, L logical device.
    [Show full text]
  • A GTK+ Binding to Build Graphical User Interfaces in Fortran Vincent Magnin, James Tappin, Jens Hunger, Jerry De Lisle
    gtk-fortran: a GTK+ binding to build Graphical User Interfaces in Fortran Vincent Magnin, James Tappin, Jens Hunger, Jerry de Lisle To cite this version: Vincent Magnin, James Tappin, Jens Hunger, Jerry de Lisle. gtk-fortran: a GTK+ binding to build Graphical User Interfaces in Fortran. Journal of Open Source Software, Open Journals, 2019, 4 (34), pp.1109. 10.21105/joss.01109. hal-02113675 HAL Id: hal-02113675 https://hal.archives-ouvertes.fr/hal-02113675 Submitted on 29 Apr 2019 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Distributed under a Creative Commons Attribution| 4.0 International License gtk-fortran: a GTK+ binding to build Graphical User Interfaces in Fortran Vincent MAGNIN1, James TAPPIN2, Jens HUNGER3, and Jerry DE LISLE4 1 Univ. Lille, CNRS, Centrale Lille, ISEN, Univ. Valenciennes, UMR 8520 - IEMN, F-59000 Lille, France 2 RAL Space, STFC Rutherford Appleton Laboratory, Harwell Campus ,Didcot,Oxfordshire OX11 0QX, United Kingdom 3 Technische Universität Dresden, Department of Chemistry and Food Chemistry, Dresden, Germany 4 GFortran Team, USA DOI: 10.21105/joss.01109 Software • Review Summary • Repository • Archive Fortran is still much used in research because it is suited by design to scientific computing Submitted: 11 October 2018 and there is a lot of legacy code written in this language.
    [Show full text]
  • 1. with Examples of Different Programming Languages Show How Programming Languages Are Organized Along the Given Rubrics: I
    AGBOOLA ABIOLA CSC302 17/SCI01/007 COMPUTER SCIENCE ASSIGNMENT ​ 1. With examples of different programming languages show how programming languages are organized along the given rubrics: i. Unstructured, structured, modular, object oriented, aspect oriented, activity oriented and event oriented programming requirement. ii. Based on domain requirements. iii. Based on requirements i and ii above. 2. Give brief preview of the evolution of programming languages in a chronological order. 3. Vividly distinguish between modular programming paradigm and object oriented programming paradigm. Answer 1i). UNSTRUCTURED LANGUAGE DEVELOPER DATE Assembly Language 1949 FORTRAN John Backus 1957 COBOL CODASYL, ANSI, ISO 1959 JOSS Cliff Shaw, RAND 1963 BASIC John G. Kemeny, Thomas E. Kurtz 1964 TELCOMP BBN 1965 MUMPS Neil Pappalardo 1966 FOCAL Richard Merrill, DEC 1968 STRUCTURED LANGUAGE DEVELOPER DATE ALGOL 58 Friedrich L. Bauer, and co. 1958 ALGOL 60 Backus, Bauer and co. 1960 ABC CWI 1980 Ada United States Department of Defence 1980 Accent R NIS 1980 Action! Optimized Systems Software 1983 Alef Phil Winterbottom 1992 DASL Sun Micro-systems Laboratories 1999-2003 MODULAR LANGUAGE DEVELOPER DATE ALGOL W Niklaus Wirth, Tony Hoare 1966 APL Larry Breed, Dick Lathwell and co. 1966 ALGOL 68 A. Van Wijngaarden and co. 1968 AMOS BASIC FranÇois Lionet anConstantin Stiropoulos 1990 Alice ML Saarland University 2000 Agda Ulf Norell;Catarina coquand(1.0) 2007 Arc Paul Graham, Robert Morris and co. 2008 Bosque Mark Marron 2019 OBJECT-ORIENTED LANGUAGE DEVELOPER DATE C* Thinking Machine 1987 Actor Charles Duff 1988 Aldor Thomas J. Watson Research Center 1990 Amiga E Wouter van Oortmerssen 1993 Action Script Macromedia 1998 BeanShell JCP 1999 AngelScript Andreas Jönsson 2003 Boo Rodrigo B.
    [Show full text]
  • Using GNU Make to Manage the Workflow of Data Analysis Projects
    JSS Journal of Statistical Software June 2020, Volume 94, Code Snippet 1. doi: 10.18637/jss.v094.c01 Using GNU Make to Manage the Workflow of Data Analysis Projects Peter Baker University of Queensland Abstract Data analysis projects invariably involve a series of steps such as reading, cleaning, summarizing and plotting data, statistical analysis and reporting. To facilitate repro- ducible research, rather than employing a relatively ad-hoc point-and-click cut-and-paste approach, we typically break down these tasks into manageable chunks by employing sep- arate files of statistical, programming or text processing syntax for each step including the final report. Real world data analysis often requires an iterative process because many of these steps may need to be repeated any number of times. Manually repeating these steps is problematic in that some necessary steps may be left out or some reported results may not be for the most recent data set or syntax. GNU Make may be used to automate the mundane task of regenerating output given dependencies between syntax and data files. In addition to facilitating the management of and documenting the workflow of a complex data analysis project, such automation can help minimize errors and make the project more reproducible. It is relatively simple to construct Makefiles for small data analysis projects. As projects increase in size, difficulties arise because GNU Make does not have inbuilt rules for statistical and related software. Without such rules, Makefiles can become unwieldy and error-prone. This article addresses these issues by providing GNU Make pattern rules for R, Sweave, rmarkdown, SAS, Stata, Perl and Python to streamline management of data analysis and reporting projects.
    [Show full text]
  • The Logo Lineage
    id302705 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com THE LOGO LINEAGE by Wallace Feurzeig Wallace Feurzeig is a division scientist in information sciences for Bolt Beranek and Newman. His favorite implementation of Logo is still Logo-S for minicomputers. L ogo was created in 1966 at Bolt Beranek and Newman, a Cambridge research firm. Its intellectual roots are in artificial intelligence, mathematical logic and developmental psychology. The first four years of Logo research, development and teaching work was done at BBN. During the early 1960s, BBN had become a major center of computer science research and innovative applications. I joined the firm in 1962 to work with its newly available facilities in the Artificial Intelligence Department, one of the earliest AI organizations. My colleagues were actively engaged in some of the pioneering AI work in computer pattern recognition, natural language understanding, theorem proving, LISP language development and robot problem solving. Much of this work was done in collaboration with distinguished researchers at M.I.T. such as Marvin Minsky and John McCarthy, who were regular BBN consultants during the early 1960s. Other groups at BBN were doing original work in cognitive science, instructional research and man- computer communication. Some of the first work on knowledge representation (semantic networks), question-answering, interactive graphics and computer- aided instruction was actively underway. J. C. R. Licklider was the spiritual as well as the scientific leader of much of this work, championing the cause of on- line interaction during an era when almost all computation was being done via batch processing.
    [Show full text]
  • Procedural Programming
    NASIR FIRDAUS OPEYEMI 17/SCI01/051 CSC302 1. (I) Examples of Structured Programming language are C, C+, C++, C#, Java, PERL, Ruby, PHP, ALGOL, Pascal, PL/I and Ada The structured programming language allows a programmer to code a program by dividing the whole program into smaller units or modules. Structured programming is not suitable for the development of large programs and does not allow reusability of any set of codes. (ii)A typical example of non-structured if BASIC. other unstructured include JOSS, FOCAL, TELCOMP, assembly languages, MS-DOS batch files, and early versions of BASIC, Fortran, COBOL, and MUMPS. Unstructured programming is a procedural program – the statements are executed in sequence as written(The statements execute in order you write) (iii)Example of procedural programming language are; FORTRAN, C, PASCAL, e.t.c Procedural programming is a programming paradigm, derived from structured programming, based on the concept of the procedure call. Procedures, also known as routines, subroutines, or functions, simply contain a series of computational steps to be carried out. (iv)Modular object oriented: Languages that formally support the module concept include Ada, Algol, BlitzMax, C#, Clojure, COBOL, D, Dart, Modular programming is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality. (V)Example of Aspect oriented is Haskell Language. Aspect-Oriented Programming (AOP) is a programming paradigm which complements Object-Oriented Programming (OOP) by separating concerns of a software application to improve modularization. (Vi)Example of Activity Oriented: Activity-oriented knowledge representation methods.
    [Show full text]
  • EAI 640 Digital Computing System, 1966
    EAI 640 Digital Computing System. - EAI@640 Digital Computing System More important, 640 capabilities are equal to a variety of scientific computational requirements. - - The EAI 640 Digital Computing System. .. <- The EAI 640 Digital Computing System serves a general-purpose, stored program digital for both general-purpose and conversational computer with a 16-bit word plus protect mode computations; as the digital portion for bit, memory expandable to 32,768 words, hybrid systems and as the digital computer a 62-instruction repertoire, 12-levels of for systems designed for special-purpose ap- priority interrupt and a price which starts plications. under $30,000. Most important, the EAI 640 strikes a balance between the work it can do and the cost to do The 640 is the balanced computer. it. Simply stated, balance means value. The The System provides the correct balance be- EAI -640 Digital Computing System offers the tween price and performance, hardware and best value available in small scale computer software, versatility and economy. systems. @CopyrightElectronic Associates, Inc., 1966. All Rights Reserved EAI 640 Digital Computing System EAI 640 Digital Computing System EQUIPMENT COMPLEMENT Paper Tape ReadIPunch Station Desk Console & Storage Rack Reads 300 characters-per-second and punches Provides facilities for monitoring all elements in 100 characters-per-second. Handles five, seven the System. The console includes a computer or eight-level paper tape. Reader and punch control panel, teletypewriter with or without are available separately. paper tape readerlpunch, or, optionally, a high- Card Reader 6401520 speed paper tape readerlpunch with controller. Reads 400 80-column cards-per-minute.
    [Show full text]
  • Guide to the John Clifford Shaw Papers
    Guide to the John Clifford Shaw Papers NMAH.AC.0580 Brian Keough 2007 Archives Center, National Museum of American History P.O. Box 37012 Suite 1100, MRC 601 Washington, D.C. 20013-7012 [email protected] http://americanhistory.si.edu/archives Table of Contents Collection Overview ........................................................................................................ 1 Administrative Information .............................................................................................. 1 Arrangement..................................................................................................................... 6 Scope and Contents........................................................................................................ 5 Biographical / Historical.................................................................................................... 2 Names and Subjects ...................................................................................................... 6 Container Listing ............................................................................................................. 8 Series 1: Shaw's Career at Rand, 1950 - 1971....................................................... 8 Series 2: RAND Environment, 1948 - 1986........................................................... 14 Series 3: State of the Computer Industry, 1946 - 1973.......................................... 18 Series 4: Consulting Work, 1972 - 1989...............................................................
    [Show full text]
  • 1^0 ^ Tkbocro' Project 16 A-Prll 1966 ;:Llrji:Ops
    1^0 ^ ]?Xl0 \U Jo Bro'i'jn ;:llrJi:OPs TKbOCrO’ Project 16 A-prll 1966 lU.f -fCvt? :1s th^ nano mod hero to do;^o?/;lbe a vropofsod syst^-m }::)attorncc:l after OSS-’-[I vjM.vh p^culd pz^ovlde :/?-n.pld and vo:^:^:atlle ccimutational :';c-:e to or.,g:.l;‘ieiO:es and salontiints via a tole-' !b;:^->;uiatc! am pex^sonaX latoraction of tho sairze \i a amarlonoad vilth a vnl^ate cisal?; calc^tl.ator comXad tro poT^Jor and fXenibility of a hiy^U apaad ccaapntsn is the 'note of this ayste^o i:t:e lann;i:>a^e used to coiimnnicate with tl'v:; aysteu Is easy to loanop sbeplo to use and natuvaX for itVinorioal problons^ Pnp?:i/iQnc0 vlth tho JOSS aysten? at rlAlW Coy-pnx^ntlorx has ar;.o'i^;n that systens of this sort ana oxtnamely usoful for a nide variety of en^;inooring and solentific cal- cnlationSo Our local e^iserienoe nita_a similar system-^ ■ Xi:.' lementod on the Hospital Cci;iputc;r (SOS-ld) shons tliat tlia /I ability to do useful ccmputaticus at the GOEa;and of in: Individual onyinaer or sclontist comornod uith a pmblGii:i V. indeed imomssme 1,1ut that res ability and doci^isentaticLi must rn-ovt very high standaisda in order to achieve eompleto aoo0j>tan,CGo n Vi out Version;●-> Vavyioi.-s im:plemen1'atioris of JOSS-lihe rysteins ?aave been^ rimm ins on the Hospital Cemputor (ifF-ld) since August i9t4« mono of thoBo has mar boon as coipplete a system as its parent (joss) and the documentatiGn has been quite inadequate= HemartmiesB.
    [Show full text]
  • User Guide Time-Harmonic Wave Modeling and Inversion Using Hybridizable Discontinuous Galerkin Discretization
    User Guide time-HArmonic Wave modEling and INversion using Hybridizable Discontinuous Galerkin Discretization hawen version 1.1.0 July, 2021 Abstract This document is the User Guide for the software hawen (time-HArmonic Wave modEling and INversion using Hybridizable Discontinuous Galerkin Discretization) currently in its version 1.1.0. It is available at https://gitlab.com/ffaucher/hawen. One should refer to the following to acknowledge use of the software (see [13]): F. Faucher. hawen: time-harmonic wave modeling and inversion using hybridizable discontinuous Galerkin discretization, Journal of Open Source Software, 6 (2021). (https://doi.org/10.21105/ joss.02699). hawen currently solves the following problems: { Forward and inverse problem for visco-acoustic wave propagation in two and three dimensions, corresponding to the Euler's equations. { Forward and inverse problem for visco-elastic wave propagation in two and three di- mensions for isotropic media. { Forward and inverse problem for the modal scalar waves in helioseismology under spher- ical symmetry, that is, for one-dimensional ODE. { Forward and inverse problem for the scalar waves in helioseismology in two and three dimensions. One should follow these steps in order to use the software. 1. Compilation of the software, see Section 3. 2. Create your parameter file, appropriate to the problem you want to solve, see Section 5. 3. Run the software, it supports mpi and OpenMP parallelism and can be used on clusters. 4. Visualize your results (modeling or parameter reconstruction). Software License policy: The code is distributed with no warranty, under the GNU General Public License v3.0. Website: https://ffaucher.gitlab.io/hawen-website/.
    [Show full text]