Elena Markovska
About me
Latest Articles
When to Use FEM, FVM, or FDM: A Practical Comparison for Beginners
Reading Time: 7 minutesKey Takeaways FEM, or the Finite Element Method, is strong for complex shapes and structural problems where geometric flexibility matters. FVM, or the Finite Volume Method, is a natural choice for fluid dynamics and transport problems because it supports local conservation of mass, energy, and momentum. FDM, or the Finite Difference Method, is the simplest […]
Mesh Quality and Convergence Studies: A Hands-On Guide for Scientific Simulations
Reading Time: 9 minutesTL;DR Before running any scientific simulation, verify that the mesh passes geometric quality checks and then prove that the results do not change significantly with further refinement. A mesh convergence study using at least three grid levels can quantify discretization error through Richardson extrapolation and the Grid Convergence Index. This guide explains the key metrics, […]
HPC Python Workflows: From Laptop to Supercomputer
Reading Time: 8 minutesKey Takeaways Python code can run on a laptop and a large HPC system with the same core logic when the workflow uses mpi4py or Dask correctly. Environment reproducibility is often the hardest part of HPC work. Conda environments, lockfiles, and job scripts help solve it. The workflow has three stages: prototype locally, parallelize with […]
Choosing the Right Python PDE Solver: FiPy vs py-pde vs FEniCS
Reading Time: 8 minutesChoosing between Python PDE solvers can feel like choosing between three different languages. The same problem, solving partial differential equations numerically, is handled in very different ways depending on the library you choose. This guide compares FiPy, py-pde, and FEniCS across the criteria that matter for research: numerical method, geometry support, learning curve, ecosystem, performance, […]
Monte Carlo Methods for Scientific Simulations: A Python Guide
Reading Time: 8 minutesMonte Carlo methods use random sampling to estimate outcomes for problems that are too complex for analytical solutions. By running thousands or millions of simulated trials with randomized inputs, you can map the range of possible behavior in a scientific model. These methods are useful for uncertainty bounds, sensitivity analysis, materials modeling, probabilistic simulation, and […]
Time Integration Methods for PDE Solvers: Explicit vs Implicit Schemes
Reading Time: 5 minutesKey Takeaways Explicit methods calculate the next state directly from the current state. They are cheap per step but require small time steps for stability. Implicit methods solve a coupled system that includes both current and future states. They are more expensive per step but can be stable for much larger time steps. Stiff equations […]
Verification vs Validation in Scientific Simulations: A Practical Guide
Reading Time: 8 minutesYou need to know two different things about a simulation: whether the code solves the equations correctly, and whether the model is accurate enough for the real-world problem. The first question is verification. The second question is validation. But that is not enough. You also need to understand how much you can trust the numbers […]
Computational Materials Science Frameworks: MOOSE vs PRISMS-PF vs OpenPhase
Reading Time: 7 minutesA practical comparison of three leading open-source phase-field frameworks for microstructural simulation, covering their numerical methods, strengths, limitations, and best use cases. Key Takeaways MOOSE is best for multiphysics simulations that couple phase-field with solid mechanics, heat transfer, or other fields. It uses FEM with implicit solvers and has a broad ecosystem of physics modules. […]
Student Project Ideas for Computational Science and Simulation: Curated List with Code Templates
Reading Time: 10 minutesKey Takeaways Curated project ideas cover beginner, intermediate, and advanced levels, with a focus on simulation and computational science. Difficulty levels reflect prerequisites, math complexity, and expected time investment. Code templates are included for each project so students can start building quickly. Learning outcomes show what each project teaches. A skills-to-projects roadmap helps students choose […]
FEniCS vs FiPy vs OpenFOAM: Choosing the Right Python PDE Solver
Reading Time: 7 minutesQuick Answer You do not pick a PDE solver by its name. You pick it by the problem you need to solve. FiPy is a strong choice when your equations involve diffusion, phase-field, or reaction-diffusion processes in 1D or 2D, and you want to prototype in pure Python quickly. It is one of the fastest […]
Reduced Order Modeling (ROM) with pyMOR: A Practical Guide for Scientists
Reading Time: 9 minutesReduced order modeling is one of the most practical ways to accelerate scientific simulations without sacrificing the physical fidelity needed for credible results. Instead of solving millions of equations every time a parameter changes, ROM extracts the dominant behavior from a high-fidelity model into a lightweight surrogate that can deliver answers in seconds or even […]
When to Use FEM, FVM, or FDM: A Practical Comparison for Beginners
Reading Time: 8 minutesKey Takeaways FEM, or the Finite Element Method, works well with complex shapes and structural problems where geometric flexibility matters. FVM, or the Finite Volume Method, is the go-to method for fluid dynamics because it supports conservation of mass, energy, and momentum. FDM, or the Finite Difference Method, is the fastest and simplest to implement, […]
Physics-Informed Neural Networks (PINNs) for Scientific Simulations
Reading Time: 9 minutesKey Takeaways Physics-Informed Neural Networks embed physical laws directly into neural network training. They can solve PDEs without traditional mesh generation or massive datasets. Traditional ML surrogates often need many simulation runs to train. PINNs use physics equations as constraints and can work with boundary data or sparse measurements. A PINN outputs predictions while minimizing […]
Python Testing Patterns for Scientific Code: Beyond pytest Basics
Reading Time: 7 minutesKey Takeaways pytest basics cover unit testing. Fixtures, parametrization, and pytest.approx are your starting point, not the finish line. Property-based testing with Hypothesis catches edge cases that manual tests often miss. It is used by major scientific Python projects such as NumPy, JAX, and PyTorch. Numerical convergence testing requires solver-specific tolerance strategies. Standard assertions do […]
Reproducibility Workflows Beyond Containers: Data Versioning and Provenance Tracking
Reading Time: 8 minutesKey Takeaways Containers solve one problem. They freeze the software environment, but they do not track what changed in your data or how your analysis evolved. Data versioning adds a missing layer. Tools like DVC and DataLad bring Git-style version control to datasets, making it easier to reproduce results with exact inputs, parameter files, and […]
GPU-Accelerated Scientific Computing: CuPy, Numba, and CuDF Compared
Reading Time: 9 minutesKey Takeaways CuPy is the right choice when you want a drop-in NumPy or SciPy replacement that accelerates array operations with minimal code changes. It is optimized for bulk matrix math, FFTs, and element-wise operations. Numba works best when the bottleneck is Python loops or custom numerical functions. Its JIT compiler turns slow Python into […]
Teaching Computational Physics: Structured Learning Paths for Graduate Students
Reading Time: 7 minutesComputational physics is no longer a niche skill. It is a core competence for graduate researchers. Whether you are simulating black hole mergers or modeling phase transitions in alloys, the ability to translate physical equations into working code separates productive researchers from those who struggle to turn theory into results. This guide maps out a […]
Managing Large-Scale Scientific Datasets: Storage Strategies for Long-Term Research
Reading Time: 9 minutesYour simulation outputs are not just files. They are research assets. When a multi-node run finishes and generates hundreds of gigabytes across thousands of time steps, you are not only producing data. You are creating scientific evidence that needs to survive hardware upgrades, personnel turnover, and institutional storage migrations. This guide explains how to structure […]
Open-Source Simulation Tools Comparison: A Decision Framework
Reading Time: 6 minutesKey Takeaways There is no best simulation tool. The right choice depends on your problem type, computational scale, team expertise, and long-term maintenance plan. The four evaluation pillars are domain physics, computational approach, team usability, and licensing or governance. Mesh-based tools such as OpenFOAM, FEniCS, and MOOSE work well for steady-state problems. Mesh-free approaches such […]
Version Control Patterns for Scientific Software: Branching Strategies for Research Projects
Reading Time: 8 minutesKey Takeaways Most research teams should use GitHub Flow. Short-lived feature branches with peer review balance safety with simplicity and match how many scientific collaborations work. GitFlow is often too complex for small labs, but it can help large research libraries with scheduled release cycles. Experiment branches with an exp/ prefix are useful for scientific […]
Scientific Computing Performance Profiling: Identifying Bottlenecks in PDE Solvers
Reading Time: 8 minutesKey Takeaways Profile before optimizing. Do not guess which part of your PDE solver is slow. Measure it first. The real bottleneck is often not the one you expect. Python profilers are practical. Tools such as cProfile, py-spy, scalene, and SnakeViz each support different profiling needs. Common PDE solver bottlenecks include matrix assembly, linear solver […]
Reproducible Parameter Sweeps: Designing Simulation Campaigns for Publication
Reading Time: 8 minutesKey Takeaways Parameter sweeps are experimental design, not just code. Treating them as structured experiments with proper documentation separates publication-ready work from fragile, unreproducible results. Full factorial sweeps are rarely the right choice. With k parameters, a full factorial requires 2^k runs. Fractional factorial designs and space-filling designs like Latin Hypercube Sampling can provide useful […]
Python for Computational Fluid Dynamics: A Practical Primer for Researchers
Reading Time: 7 minutesIf you are a researcher who has spent years working with Navier-Stokes equations and wants to see them run in Python without buying expensive software or rewriting everything in C++, this guide is for you. Computational Fluid Dynamics, or CFD, in Python has matured dramatically. Modern Python-based solvers and frameworks now cover the full workflow, […]
Distributed Parallel Computing Patterns for Scientific Python: MPI, Dask, and Ray
Reading Time: 8 minutesLearn the parallel computing patterns for MPI, Dask, and Ray in Scientific Python. Discover when each framework excels and how to choose the right distributed computing tool for your simulation.
Managing Dependencies in Scientific Python: Lockfiles, Environments, and Reproducibility
Reading Time: 8 minutesManaging dependencies in scientific Python is one of the most important parts of reproducible research. A simulation can fail months later because package versions changed, a Python interpreter shifted, or a numerical library updated in a way that affects results. This guide explains how lockfiles, environments, and modern package managers help researchers keep scientific Python […]
Differential Equations as the Backbone of Simulations
Reading Time: 8 minutesSimulations help us study systems that change over time. A simulation can show how a car moves, how heat spreads through metal, how a population grows, how a fluid flows, or how weather patterns develop. At first, this may look like a programming task only. You write code, run the program, and get numbers or […]
Reproducible simulation workflows in chemistry and materials research: what teams should document
Reading Time: 7 minutesReproducibility in chemistry and materials simulation is not just a matter of storing a script, uploading a dataset, or keeping a folder of input files. A workflow is reproducible when another researcher can understand how a scientific question became a model, how that model became an executable run, how the run produced outputs, and how […]
Case Study: MMSP and Its Role in Scientific Computing
Reading Time: 8 minutesScientific computing is not only about powerful computers or advanced mathematical formulas. It is also about software that helps researchers turn physical questions into models, simulations, and repeatable experiments. In fields such as materials science, chemistry, physics, and engineering, software tools can make it possible to study processes that are difficult, expensive, or slow to […]
How Simulation Tools Change the Way We Tell the History of Modern Science
Reading Time: 5 minutesModern science is often remembered through a familiar script: a problem becomes visible, an instrument captures something new, and a discovery enters public memory as a breakthrough. That script still matters, but it no longer explains enough. In many fields, the decisive shift did not come from a microscope, a telescope, or a single dramatic […]
Scientific Computing Lessons That Teach Developers How Performance Really Works
Reading Time: 7 minutesDevelopers often learn performance from small examples: a faster loop, a cleaner benchmark, a language comparison, a clever micro-optimization. Those examples are useful, but they can also hide the harder truth. Real performance work is rarely about finding one “fast trick.” It is about understanding how a workload behaves when data grows, when memory becomes […]
Geophysics Applications: PDE Modeling for Earth Systems
Reading Time: 7 minutesGeophysical phenomena—from groundwater flow to mantle convection—are governed by partial differential equations (PDEs). Finite volume methods (FVM) solve these PDEs by enforcing conservation laws over control volumes, making them ideal for complex, nonlinear earth systems. Python tools like FiPy provide flexible PDE solving capabilities, while domain-specific packages like MODFLOW/FloPy offer standardized workflows for groundwater modeling. […]
Real-World Applications of Computational Materials Science
Reading Time: 6 minutesComputational materials science has transformed how scientists discover, design, and optimize materials for modern technologies. Instead of relying solely on expensive and time-consuming laboratory experiments, researchers now use powerful simulations, mathematical models, and data-driven techniques to predict how materials behave under real-world conditions. These virtual approaches accelerate innovation, reduce development costs, and allow engineers to […]
Understanding Phase-Field Models in Materials Science
Reading Time: 4 minutesModern materials science increasingly relies on predictive modeling to understand how microstructures form, evolve, and ultimately determine macroscopic properties. From dendritic solidification in alloys to crack propagation in structural materials, many physical phenomena are governed by moving interfaces between phases. Accurately describing these interfaces is one of the central challenges in computational materials science. Phase-field […]
From Equations to Simulations: The Modeling Pipeline
Reading Time: 3 minutesMathematical equations are powerful tools for describing the world. They encode relationships between variables, express conservation laws, and formalize physical, biological, financial, or engineering processes. However, equations alone are not sufficient for real-world prediction or decision-making. To transform mathematical models into actionable insights, we need simulations. The journey from equations to simulations is not a […]
How Mathematical Models Describe Physical Systems
Reading Time: 5 minutesMathematical models are one of the most powerful tools humans have for understanding the physical world. From predicting the motion of planets to designing bridges, simulating climate, or controlling electronic devices, models translate real-world phenomena into equations that can be analyzed, tested, and used for prediction. While the mathematics behind these models can become complex, […]
Introduction to Materials Modeling for Beginners
Reading Time: 7 minutesMaterials modeling is the practice of using mathematics and computation to predict how a material behaves—how it deforms, conducts heat, transports atoms, forms microstructures, or reacts under different conditions. If you’re new to the field, the hardest part is not the equations. It’s learning how to think across scales and how to pick a model […]
What Is Scientific Simulation and Why It Matters
Reading Time: 7 minutesScientific simulation is one of the most practical tools modern research has. It lets scientists and engineers explore complex systems on a computer when real-world experiments are too expensive, too slow, too dangerous, or simply impossible. From modeling how heat spreads through a material to forecasting weather patterns, simulation helps turn “we think” into “we […]
Mesoscale Microstructure Simulation Project (MMSP)
Reading Time: 3 minutesMesoscale Microstructure Simulation Project (MMSP) is a computational framework designed to provide a simple, consistent, and extensible programming interface for grid- and mesh-based methods used to simulate microstructure evolution at the mesoscale. The project addresses a common challenge in computational materials science: enabling researchers to apply a wide range of numerical methods—such as Monte Carlo, […]
TheraPy: Modeling Microstructure Evolution in Drug–Polymer Systems
Reading Time: 3 minutesTheraPy is a collection of Python scripts developed to model the evolution of chemical and physical inhomogeneities—commonly referred to as microstructure—in drug–polymer composite systems used for controlled drug release coatings. These coatings are widely applied in medical devices where drug delivery must be carefully regulated over time. TheraPy focuses on capturing how microstructure forms during […]
Gibbs: A Multi-Physics Thermodynamics Calculation and Visualization Suite
Reading Time: 3 minutesGibbs is a multi-component thermodynamics calculation and visualization suite designed as a general-purpose framework for computing thermodynamic properties, phase equilibria, and phase stability. The project is developed as an open-source platform to support thermodynamics research, model validation, and comparative studies, while also serving as a foundation for educational tools in materials science and related disciplines. […]
RheoPlast
Reading Time: 3 minutesRheoPlast is an open-source finite difference multi-physics code developed for phase-field simulations. Created by Adam Powell, David Dussault, Bo Zhou, Jorge Vieyra, and Wanida Pongsaksawad, the project emerged in the early 2000s as a high-performance computational framework for modeling complex material systems. Designed primarily for research applications, RheoPlast combines numerical efficiency, parallel scalability, and advanced […]