Structure of Albany

Once you have obtained a local copy of the Albany repository, it is possible to view the Albany source code by looking
in the Albany/src directory. The source is subdivided into five general categories for the base code (adapt, disc,
evaluators, responses, problems) plus 5 other directories for additional "packages" (LCM, MOR, QCAD, FELIX, Hydride)
which are briefly explained below.


This directory contains information necessary to represent a physical geometry as a discrete mesh. Albany can natively
generate simple regular rectangular geometries and can also import EXODUS II format meshes. If the SCOREC software
stack is enabled in the Albany build, PUMI meshes can be used to solve problems in Albany.


This directory contains all the information necessary to change the discrete mesh representation of a geometry at given
points during a simulation. If Albany's native discretization is used, the adaptation capabilities are fairly limited
(uniform refinement, adaptation based on fracture...). However, if the SCOREC software stack is enabled in the Albany
build, the entirety of MeshAdapt can offer more robust adaptation capabilities.


Evaluators evaluate "things which need to be evaluated." For example, in the base directory (Albany/src), there is an
evaluator called "PHAL_HeatEqResid*.*" This evaluator evaluates the residual of the weak form of the Heat Equation.
This evaluator will be looked at more in depth in An_Example_Variational_Form.


This directory I am not knowledgeable enough to comment on. If you find / figure out some meaningful information,
please edit this wiki. It is likely related to functional evaluations (e.g., integrated quantities over a set of surfaces such as lift and drag over an aircraft wing or heat flux over a pipe surface).
However, we are not sure at this time and requires further investigation.


The problems directory contains abstract representations of different types of problems (Compressible Navier-Stokes,
Heat, Mechanics, etc...). A problem uses evaluators to build and construct a general solving scheme for a PDE given
boundary conditions, initial conditions, and appropriate parameters.


In addition to the base structure of Albany/src, there are additional "packages" to Albany which utilize their own
evaluators and problems to add new physics capabilities to Albany. In the LCM directory, there are also constitutive
models (J2 Plasticity, Neohookean, etc..).

LCM - Library for Computational Mechanics
MOR - Model Order Reduction
QCAD - Quantum Computer Aided Design
FELIX - Finite Element for Land Ice Experiments
Hydride - application-specific code for the nuclear energy application of hydridization of cladding materials