A generalized poroelastic model using FEniCS with insights into the Noordbergum effect
Not Available
SEARCH · Engineering Papers
Search indexed NASA NTRS and DOE OSTI research on propulsion, heat transfer, battery materials and energy systems. Follow report and document links to the original sources.
Quote a phrase for an exact phrase match. Source license links do not imply unrestricted reuse.
Not Available
Explore the source record for details and available documents.
Abstract Battery performance is strongly correlated with electrode microstructure. Electrode materials for lithium-ion batteries have complex microstructure geometries that require millions of degrees of freedom to solve the electrochemical system at the microstructure scale. A fast-iterative solver with an appropriate preconditioner is then required to simulate large representative volume in a reasonable time. In this work, a finite element electrochemical model is developed to resolve the concentration and potential within the electrode active materials and the electrolyte domains at the microstructure scale, with an emphasis on numerical stability and scaling performances. The block Gauss-Seidel (BGS) numerical method is implemented because the system of equations within the electrodes is coupled only through the nonlinear Butler–Volmer equation, which governs the electrochemical reaction at the interface between the domains. The best solution strategy found in this work consists of splitting the system into two blocks—one for the concentration and one for the potential field—and then performing block generalized minimal residual preconditioned with algebraic multigrid, using the FEniCS and the Portable, Extensible Toolkit for Scientific Computation libraries. Significant improvements in terms of time to solution (six times faster) and memory usage (halving) are achieved compared with the MUltifrontal Massively Parallel sparse direct Solver. Additionally, BGS experiences decent strong parallel scaling within the electrode domains. Last, the system of equations is modified to specifically address numerical instability induced by electrolyte depletion, which is particularly valuable for simulating fast-charge scenarios relevant for automotive application.
Abstract A fundamental understanding of the interaction between microstructure and underlying physical mechanisms is essential, especially for developing more accurate multi-physics models for heterogeneous materials. Effects of microstructure on the material response at the macroscale are modeled by using the generalized thermomechanics. In this study, strain gradient theory is employed as a higher-order theory on the macroscale with thermodynamics modeled as a first-order theory on the microscale. Hence, energy depends only on the temperature such that we circumvent an extension of Fourier’s law and analyze the “simplest” thermo-mechanical model in strain gradient elasticity. Developing multiphysics models for heterogeneous materials is indeed a challenge and even this “simplest” model in generalized thermomechanics creates dozens of parameters to be determined. We develop a thermo-mechanical framework, in which microstructure is modeled as a periodic structure and through asymptotic homogenization approach, higher-order parameters at macroscopic scale are calculated. To illustrate the importance of higher-order parameters in overall thermo-mechanical response of a heterogeneous materials, finite element method (FEM) is employed with the aid of open-source codes (FEniCS). Verification example of a bulk system and several case studies of porous structures demonstrate how such numerical framework can be beneficial in the design of materials with tailored microstructures.
Biological cells rely on precise spatiotemporal coordination of biochemical reactions to control their functions. Such cell signaling networks have been a common focus for mathematical models, but they remain challenging to simulate, particularly in realistic cell geometries. Here we present Spatial Modeling Algorithms for Reactions and Transport (SMART), a software package that takes in high-level user specifications about cell signaling networks and then assembles and solves the associated mathematical systems. SMART uses state-of-the-art finite element analysis, via the FEniCS Project software, to efficiently and accurately resolve cell signaling events over discretized cellular and subcellular geometries. We demonstrate its application to several different biological systems, including yes-associated protein (YAP)/PDZ-binding motif (TAZ) mechanotransduction, calcium signaling in neurons and cardiomyocytes, and ATP generation in mitochondria. Throughout, we utilize experimentally derived realistic cellular geometries represented by well-conditioned tetrahedral meshes. These scenarios demonstrate the applicability, flexibility, accuracy and efficiency of SMART across a range of temporal and spatial scales.
SUMMARY We introduce a new finite-element (FE) based computational framework to solve forward and inverse elastic deformation problems for earthquake faulting via the adjoint method. Based on two advanced computational libraries, FEniCS and hIPPYlib for the forward and inverse problems, respectively, this framework is flexible, transparent and easily extensible. We represent a fault discontinuity through a mixed FE elasticity formulation, which approximates the stress with higher order accuracy and exposes the prescribed slip explicitly in the variational form without using conventional split node and decomposition discrete approaches. This also allows the first order optimality condition, that is the vanishing of the gradient, to be expressed in continuous form, which leads to consistent discretizations of all field variables, including the slip. We show comparisons with the standard, pure displacement formulation and a model containing an in-plane mode II crack, whose slip is prescribed via the split node technique. We demonstrate the potential of this new computational framework by performing a linear coseismic slip inversion through adjoint-based optimization methods, without requiring computation of elastic Green’s functions. Specifically, we consider a penalized least squares formulation, which in a Bayesian setting—under the assumption of Gaussian noise and prior—reflects the negative log of the posterior distribution. The comparison of the inversion results with a standard, linear inverse theory approach based on Okada’s solutions shows analogous results. Preliminary uncertainties are estimated via eigenvalue analysis of the Hessian of the penalized least squares objective function. Our implementation is fully open-source and Jupyter notebooks to reproduce our results are provided. The extension to a fully Bayesian framework for detailed uncertainty quantification and non-linear inversions, including for heterogeneous media earthquake problems, will be analysed in a forthcoming paper.
This repository provides the 1D reaction-diffusion simulation engine for the multi-scale framework. It takes monomer-level kinetic and thermodynamic descriptors as inputs, approximated from quantum chemical calculations, to simulate and predict the macroscopic propagation behavior of Frontal Ring-Opening Metathesis Polymerization (FROMP). By solving a coupled 1D reaction-diffusion PDE system, this tool predicts front propagation speed, front temperature, and degree of conversion. The solver explicitly captures the three fundamental ROMP steps, initiator activation/inhibition, chain initiation, and propagation, while accounting for high-temperature cycloreversion as a competing pathway. The numerical implementation uses FEniCS to handle the coupled heat diffusion and reaction kinetics.
TAPsolver is a python package, which automates TAP simulation and analysis routines. TAPsolver is built around the python packages FEniCS and Dolfin-Adjoint, which help take advantage of model adjoints to provide automatic derivatives. TAPsolver is flexible, with reaction mechanisms and rate constants that can be set through input files that allow users to take advantage of the different functionalities, which include sensitivity analyses, parameter optimization and uncertainty quantification.
WindSE is a python package that uses a FEniCS backend to perform wind farm simulations and optimization. Documentation can be found at: https://windse.readthedocs.io/en/latest/
SurFE-XD is a mesoscale finite element framework to model surface diffusion under mutliphysics environments. The code uses legacy C++ library dolphin wrapped with python in a FEniCS driven unified form language and just-in-time (JIT) compilation setting. The purpose of the release is to attract wide-ranging usage of the code along with publication supplementation to support reproducibility of scientific data. SurFE-XD has been originally conceived under the LDRD-DR funding for “High-Gradient (C-BAND) Breakdown tolerant accelerator materials project. Currently SrFE-XD support electrostatics and Thermo-elasticity driven surface diffusion kernels. Releasing the code will also enable to include contributions from other physical regimes e.g., plasticity and electrodynamics etc as well portability to GPU-based platforms.
Mathematical models expressed in the form of discretized equations play an important role inmany scientific disciplines. In our experience, few domain scientists have sufficient backgroundin numerical computing (or the time required to acquire such a background) to use manyflexible and powerful but complex open source packages, such as FEniCS (Alnæs et al., 2015)and OpenFOAM (The OpenFOAM Foundation Ltd, n.d.). Many user-friendly open sourcepackages, such as FiPy (J. E. Guyer & Warren, 2009), and many commercial packages, suchas COMSOL Multiphysics (COMSOL AB, n.d.) and Simcenter STAR-CCM+ (Siemens DigitalIndustries Software, n.d.), provide limited flexibility in the equations that users can express.Additionally, the use of commercial packages, which by nature do not perform calculationstransparently, can hinder reproducibility, which is vital to the scientific process. PyGDH(“pigged”) is a Python 2 / Python 3 (Python Software Foundation, 1991–2020) package thatis meant to be accessible to scientists who might not be specialists in scientific computing,while approaching the level of flexibility associated with writing dedicated programs tailoredto solving specific problems. The PyGDH User’s Guide provides detailed instructions forcreating numerical models, including a brief introduction to necessary command line andPython (Python Software Foundation, 1991–2020) skills, and discussions of discretization andvalidation. Note that PyGDH emphasizes flexibility and simplicity over performance, and wasnot designed for high-performance applications or models describing complex spatial domains.
We present an efficient and robust numerical algorithm for solving the linear elasticity problem that combines the Quantized Tensor Train format and a domain partitioning strategy. This approach makes it possible to solve the linear elasticity problem on a computational domain that is more general than a square. By integrating Z-ordering and subdomain concatenation, our method substantially decreases memory usage and achieves a notable reduction in rank compared to established Finite Element implementations like the FEniCS platform. This efficiency is maintained while still guaranteeing exponential convergence with respect to the number of degrees of freedom. This performance gain, however, requires a fundamental rethinking of how core finite element operations are implemented. This includes changes to mesh discretization, node and degree of freedom ordering, stiffness matrix and internal nodal force assembly, and the execution of algebraic matrix-vector operations. In this work, we discuss all these aspects in detail and assess the method’s performance in the numerical approximation of three representative test cases.
Modern wind plants are increasingly tasked with multiple performance objectives. In addition to designing plants that maximize power output and minimize the levelized cost of energy (LCOE), the design and operation of wind plants is increasingly influenced by challenges regarding grid integration of variable generation renewables. This places a growing emphasis on making wind plants more controllable and predictable. WindSE is a Reynolds-averaged Navier-Stokes (RANS) model designed around analytical gradient and adjoint methods, with the ability to capture terrain-induced effects, as shown in Figure 1. The recent addition of an unsteady solver with an actuator line method (ALM) and ongoing work to enable massively parallel optimizations gives it a unique niche to explore coupled plant-level controls and design problems. This code is an open source python package built on the FEniCS framework that utilizes fast, parallel PETSc solvers to model fluid flow throughout wind-farm scale domains. Two recent studies performed using WindSE demonstrate the capability to optimize under a wide variety of flow conditions and objective functions. In the first, we present an optimization focused on modifying the layout of a wind farm with a fixed number of turbines for maximum total power output [1]. This study highlights the ability to quickly perform simulations using the steady Navier-Stokes solver combined with rotors represented as actuator disks while also stressing the importance of capturing terrain-induced effects. Gradient-based optimization using the RANS equations is viable due to the inclusion of efficiently computed adjoint derivatives. We interpret the physical results of the optimal layout and also discuss the computational cost of scaling to larger problems. In the second study, we present the capabilities of the unsteady Navier-Stokes solver, where rotor-blade profiles represented by actuator lines are optimized to enhance wake steering effects and overall power production [2]. We quantify the wind plant performance gains obtained from this type of simultaneous control co-design optimization as compared to optimizing the blade design and yaw independently. Figure 2 shows the differences between a baseline two-turbine system and an optimized system where we fine-tune the blade chord profile. Results and challenges from each study are quickly summarized and used to motivate the current development efforts within WindSE. Current and future work is focused on enabling higher-resolution studies with more degrees of freedom through parallelization of both the simulation and optimization algorithms. We present benchmarking results to show that WindSE performs well in both weak- and strong-scaling tests and further demonstrate that the optimizer obtains the same convergence rates in both shared- and distributed-memory environments. Using larger wind farms, we can study deep-array effects within an optimization context, allowing the use of objective functions that have been previously unstudied. As an example, we present ongoing work on a blockage metric which characterizes the loss of available kinetic energy due to wake effects from multiple upstream turbines.
We will take a look at solving the Reynolds-averaged Navier-Stokes (RANS) equations that are encountered in the context of wind farm performance simulations and optimizations. We will compare some of the more popular ways to solve these equations with a focus on using iterative solvers for the linear solve. We will compare their performance and reliability to a direct solve as we scale the problem both by adding more and parallel resources and by increasing the size of the domain, both in two and three dimensions. There are many strategies that can be applied to solving the RANS equations, some are very efficient, while others are very insensitive to, for example, the Reynolds number. The first contender we will consider is the Pressure-Convection-Diffusion (PCD) preconditioner. Early results suggest that PCD is indeed a very efficient solver, in particular in two dimensions, as long as the Reynold's number remains small. Next we will try to reorder our degrees of freedom such that we can use GMRES with ILU for our linear solve. Another popular choice we will consider for solving the RANS equations is SIMPLE (and its derivatives). For all of our implementations we make use of either FEniCS or Firedrake, basing our work on both existing implementations of some of these solvers while also writing new extensions for others.
TAPsolver is a python package, which automates TAP simulation and analysis routines. TAPsolver is built around the python packages FEniCS and Dolfin-Adjoint, which help take advantage of model adjoints to provide automatic derivatives. TAPsolver is flexible, with reaction mechanisms and rate constants that can be set through input files that allow users to take advantage of the different functionalities, which include sensitivity analyses, parameter optimization and uncertainty quantification.
Even though the development of novel materials that mimic nature is widely used in a variety of engineering and scientific fields, the relationship between effective material properties and underlying, often complex pore morphology is still not fully understood. To address this knowledge gap and accelerate the development of novel nature-inspired materials, this paper adopts a higher-order asymptotic homogenization method to numerically investigate the effect of complex micropore morphology on the effective mechanical properties of a porous system. Specifically, we create unique pore morphologies with varying levels of complexity that serve as a more realistic representation of natural materials. Here, we then use the second-order homogenization method to capture the role of pore size, shape, orientation, and distribution on effective properties. By creating different pore morphologies, we systematically studied the relationship between morphology and effective mechanical properties. The results highlight the necessity of higher-order parameters to fully capture the role of realistic pore morphologies on effective mechanical properties and provide a path forward in the design of nature-inspired materials.
One of the main goals in modeling lithium-ion batteries is to improve/predict longevity and resilience of new chemistries. Unfortunately, this requires simulation of thousands of charge/discharge cycles, which can be rather time consuming depending on the fidelity of the simulation. The purpose of this talk is to discuss a new modeling framework that couples a high-resolution, continuous damage model (CDM) to a single particle model (SPM) resulting in a good combination of speed and fidelity. In previous work, a 3D, continuum-level chemo-mechanical model was developed to investigate cracking within a single cathode particle comprised of hundreds to thousands of randomly oriented grains. The CDM predicted that particle fracture is primarily due to non-ideal grain interactions with slight dependence on high-rate charge demands. Essentially, when neighboring grains were misaligned, they expanded different rates relative to one another leading to high stresses and ultimately the formation of intraparticle cracks. The model predicted that small particles with large grains develop significantly less damage than larger particles with small grains. Finally, the model predicted most of the chemo-mechanical damage accumulates in the first charge after formation. This chemo-mechanical "damage saturation" effect indicated that initial particle fracture occurs within the first few cycles, while long-term cathode degradation is not solely chemo-mechanically induced. This led to a need for simulating fatigue-like mechanism that degrade the battery over longer time scales. In order to reach the time scales, need to resolve fatigue-like degradation, the CDM needs to be complemented by a faster model. Therefore, recent efforts have been focused on using results from the CDM to inform parameters within the SPM. These parameters are homogenization factors that are associated with diffusion, particle radius, and/or exchange current density. By coupling the CDM to the SPM, the aging simulation is broken up into two domains: short-term and long-term degradation. The short-term degradation occurs over a single cycle and is handled by the CDM due of its high fidelity, but relatively expensive computational cost. Such mechanism include break-in crack caused by mismatches in grain orientation. The long-term degradation occurs over tens of cycles and is handled by the SPM due it's computational efficiency. Most of the fatigue-like mechanism fall into this category. The eventual goal of this modeling framework is to upscale to a psudo-2D model allowing for full electrode simulation, which are informed by high-fidelity grain-scale simulations.