Computational modeling in geochemistry and petrology (and the geosciences more broadly)Kendra J. Lynn, Earth Sciences, University of Delaware
Vision for teaching computational skills more broadly in the geosciences
Sophisticated modeling skills are becoming highly valued in the geosciences. Classically, geosciences focus on observation and analysis of rocks and their minerals to understand geologic processes. While quantitative, these approaches may not involve computational skills. Students often must teach themselves how think and write in programming languages. I intend to provide students with experience in programming and computer languages, followed by numerical model development that can be applied to a wide range of geologic problems. In an advanced course focused on the rates and timescales of igneous and metamorphic processes, I would introduce graduate and advanced undergraduate students to numerical modeling and diffusion chronometry techniques. These subjects would be taught within the context of accessing the timescales associated with diffusive re-equilibration of major, minor, and trace elements in minerals. Students can use these tools to understand the mixing, storage, and transport of magmas and geochemical cycles in igneous and metamorphic systems from the mantle source to Earth's surface.
Why aren't there more opportunities to learn programming languages?
Many industry professions and research topics within Earth Sciences require some level of computing and coding skills. Many undergraduate programs only require students to take an introductory course to language programming, which often might be a graphical user interface format like Visual Basic. Bachelor's degree recipients in the geosciences may not have any practical training in primary computing languages or programs (R, Matlab, Python, etc.) before they go on to pursue a job in industry or a graduate program in research.
I was fortunate to have been exposed to a computational approach to modeling diffusion kinetics by a postdoc who ended up co-advising my graduate research. Through this experience I learned that simple calculations in excel paled in comparison to the power of using MATLAB (and eventually other platforms like Python) to model the geochemical and petrological data from my samples. Although I am largely self-taught, I feel that coursework in geoscience departments can easily incorporate computational skills and training so that students are better prepared for research and computation in their industry careers.
Thinking in 3D – and then translating that into programming
A challenging aspect in the geosciences is being able to think about data and geologic processes in 2 and 3 dimensions. Taking the concepts one step further and being able to program them for computation in three dimensions is one of the biggest challenges students face when developing computational skills. To make the transition to thinking and coding in 3D more feasible and with better comprehension is one of the goals in my teaching endeavors. I have found that students respond well if they are first introduced to a simple model in Excel, a program they should be quite familiar with. The next step is to have them repeat the model exercise, but this time in a programming language (MATLAB is my choice). This step of going from visual based programs to computational ones helps students make the transition to thinking about how to write code to approach a problem. After they are comfortable with the simple model in MATLAB, I then ask them to add components that make the model more complicated. Eventually we transition to modeling the same problem in 2D, and then in 3D. This progression helps them expand their skills without overwhelming them. By the time they master 3D thinking and modeling, it is a simple exercise to re-define the problem and switch out the governing equations (e.g., from diffusion kinetics to Navier Stokes equations).