Albany-LCM (Laboratory for Computational Mechanics) is spin-off (fork) from Albany, an implicit, unstructured grid, finite element code for the solution and analysis of multiphysics problems. The Albany-LCM repository on the GitHub site contains almost 200 regression tests and examples that demonstrate the code's capabilities on a wide variety of problems, with a strong focus on computational solid mechanics and thermo-mechanics.
Illustration of solid mechanics simulation of a notched cylinder, simulated using the alternating Schwarz-based multi-scale coupling capability in Albany-LCM.Albany-LCM heavily leverages the Trilinos Framework, available at:
git clone https://github.com/trilinos/Trilinos.git
Albany-LCM supports the solution of very large problems (those over 2.1 billion degrees of freedom) using MPI. It relies on automatic differentiation from the Sacado library of Trilinos, which makes it straightforward to add new PDEs/physics to the code. Albany-LCM contains a wide variety of constitutive models for solid mechanics, ranging from simple linear elasticity to sophisticated nonlinear micro-structure models with plasticity (e.g., J2 plasticity, crystal plasticity), and the Schwarz alternating method for multi-scale coupling in solid mechanics. It also houses the terrestrial component of the Arctic Coastal Erosion (ACE) model, a coupled thermo-mechanical model with some novel permafrost constitutive models currently under development as part of the InterFACE project.
To get started with Albany-LCM it is helpful to consult the build instructions for both Trilinos and Albany located on the Albany wiki at https://github.com/sandialabs/Albany/wiki/Building-Albany-and-supporting-tools. For help with building the code, please contact Irina Tezaur ([email protected]) or Alejandro Mota ([email protected]).
The Albany-LCM repository is tested nightly on several CPU-based architectures, with the results posted to an internal-to-Sandia CDash site.
The regression test suite is contained within the Albany-LCM repository in the directories:
/tests
These tests are stand-alone and also serve as nice examples about how to describe various multiphysics problems. They also serve as a template for developing new simulations.
Once Albany-LCM is built, the default test suite is executed by typing ctest
within the build directory. Any individual test can be executed by
moving into its sub-directory, and executing ctest
in that
sub-directory. Many Albany-LCM tests run in parallel using up to 4 MPI ranks.
Unfortunately, we do not have up-to-date documentation of Albany-LCM; the interested user may wish to consult the (out-of-date) HTML user guide inside the Albany-LCM repository at:
/doc/user-guide/guide.html
The LaTeX Developer's Guide (also out-of-date) is located at:
/doc/developersGuide
When Albany-LCM was first created by forking from the main Albany code, the idea was to use this code primarily for analyses involving mechanics and thermo-mechanics, as the name of the code suggests. To facilitate development of the code, a decision was made to remove PDEs and capabilities that were no longer funded, including PDEs not relevant for solid mechanics modeling, Kokkos kernels and mesh adaptation. Users interested in these capability should check out the main Albany repository, which houses a performance-portable land-ice model known as MPAS-Albany Land Ice (MALI) and the Albany-SCOREC repository, which focuses on developing capabilities for additive manufacturing and includes adaptive mesh refinement (AMR) via the Parallel Unstructured Mesh Interface (PUMI).