ASPECT

This is the list of changes made after the release of Aspect version 1.5.0. All entries are signed with the names of the author.
New: There is now a new mesh refinement criterion that adds the option to refine cells based on the compaction length, a typical length scale of features in models with melt migration.
(Juliane Dannberg, 2018/02/12)
New: Aspect now supports using the free surface in models with melt migration, and with all nonlinear solver schemes.
(Juliane Dannberg, 2018/01/30)
New: The 'initial profile' adiabatic conditions plugin was renamed to 'compute profile' as it can now use a function to change the adiabatic surface pressure and temperature over time. If this option is used the adiabatic reference profile will be recomputed for every timestep based on the new function values. If the new option is not set the behavior is unchanged.
(Rene Gassmoeller, 2018/01/25)
New: There is now a gravity profile that follows the values of the Preliminary Reference Earth Model (PREM), which is also the new default value for the 'ascii data' gravity model.
(Rene Gassmoeller, 2018/01/19)
Changed: Removed min/max bounds on the specific heat capacity and thermal expansivity inside the 'Steinberger' material model. These bounds were only used if the 'Use latent heat' parameter was set to true. To prevent silently changing the solution these bounds were removed.
(Rene Gassmoeller, 2018/01/16)
Fixed: The 'heat flux map' visualization postprocessor used to compute the heat flux through every boundary face and average the computed fluxes per cell. At side boundaries of boxes the computed flux usually makes no sense, and one is usually only interested in the surface or bottom heat flux. Thus the plugin was changed to only compute fluxes at top and bottom boundaries.
(Rene Gassmoeller, 2018/01/15)
New: We now reuse the memory for matrices for compositional fields instead of allocating one for each field. This will result in memory savings if a large number of them are used.
(Timo Heister, 2018/01/12)
Changed: The boundary velocity plugins are now controlled by a manager class that allows assigning several plugins at the same boundary. This behavior is identical to the boundary temperature and boundary composition plugins with the additional possibiltiy of assigning different plugins to different boundaries, and only prescribing certain components of the velocity.
(Rene Gassmoeller, 2018/01/05)
Changed: The boundary composition plugins are now controlled by a manager class that allows assigning several plugins at the same time. This behavior is identical to the boundary temperature plugins.
(Rene Gassmoeller, 2018/01/04)
New: A new material model 'damage rheology' is added. This model uses a compositional field to store and evolve a quantity that represents the grain size, which influences the viscosity. All other material properties can be read from data tables generated by Perplex or Hefesto, or set in a similar way to the 'simple' material model. Details about the model are available in Dannberg et al., 2017 in GCubed.
(Rene Gassmoeller, Juliane Dannberg, Bob Myhill, 2018/01/02)
Fixed: Memory consumption for matrix storage got reduced significantly by not allocating unused entries in the preconditioner matrix.
(Timo Heister, 2017/12/22)
Changed: The ASPECT header (the first lines of each output and the beginning of log.txt files) now contains more information about the version of the software and the used dependencies. This will improve the reproducibility of old model results.
(Rene Gassmoeller, 2017/12/12)
New: Added a new "static" field type for compositional fields that are not subject to advection/diffusion/reactions.
(Timo Heister, 2017/11/23)
New: Implement new mass conservation formulation "hydrostatic compression".
(Juliane Dannberg, Rene Gassmoeller, Timo Heister, 2017/11/22)
New: The option to prescribe a Stokes solution when using the advection only solver scheme now also works in models where melt transport is used.
(Juliane Dannberg, 2017/11/21)
Changed: The 'Morency and Doin' material model was removed from the available material models, and moved to a cookbook folder. This material model is really only useful in that particular setup.
(Rene Gassmoeller, 2017/11/15)
Changed: The screen output of the different solver schemes now has the same style. All lines that output the total nonlinear residual of the system iterated over begin with 'Nonlinear residual' and then specify the system being solved.
(Juliane Dannberg, 2017/11/01)
New: There is a new cmake option ASPECT_COMPARE_TEST_RESULTS, which allows to run the test suite without comparing its results. This is useful for other machines than the reference tester, and to check if one of the tests crashes. The option defaults to ON, which preserves the old behavior of comparing the results.
(Rene Gassmoeller, 2017/10/31)
Fixed: A forgotten factor of 2 in assembling the preconditioner for the Stokes equation, and a forgotten term for compressible models, led to a suboptimal performance of the solver. The answers were always correct, but it took more iterations than necessary. This is now fixed, and results in significantly fewer GMRES iterations when solving the Stokes equations.
(Menno Fraters, Wolfgang Bangerth, Rene Gassmoeller, Timo Heister, 2017/10/27)
Changed: The 'depth' function of geometry models now uses any existing initial topography instead of the undeformed geometry as reference level to compute the depth.
(Menno Fraters 2017/05/16)
Added: A new particle interpolation scheme called harmonic average. If a cell contains zero particles, then the harmonic average of the particle properties in the neighboring cells is returned.
(Harsha Lokavarapu, 2017/10/21)
Changed: The hdf5 visualization output no longer automatically merges vertices of adjacent cells to save disk space. This has lead to confusion when investigating discontinous output properties, and is now an input parameter that needs to be explicitly enabled.
(Rene Gassmoeller, 2017/10/19)
New: The new 'function' boundary composition plugin allows to prescribe compositional field boundary conditions using an analytical function. It supports the coordinate systems cartesian, spherical, and depth.
(Matt Weller, Rene Gassmoeller, 2017/10/01)
New: The core of the Newton solver has been added to ASPECT and is functional. This includes several tests to test that the Newton solver is functioning properly.
(Menno Fraters 2017/05/16)
New: Much of the non ASPECT specific particle functionality has been moved into the new ParticleHandler class, that will eventually be transferred into deal.II. Some particle related interfaces and plugins need to be adjusted, in particular the Particle::Integrator plugins.
(Rene Gassmoeller, 2017/09/20)
New: Traction boundary conditions now also work in models with melt transport.
(Juliane Dannberg, 2017/09/13)
New: a new boundary temperature plugin that the core mantle boundary temperature evolves through time by calculating the heat flux through core mantle boundary and solving the core energy balance. A postprocessor of the core evolution is also added. It is used in our paper Zhang & O'Neill [2016] and it could be useful for people interested in long term planetary evolution.
(Siqi Zhang & Craig O'Neill, 2017/08/22)
Fixed: Visualization postprocessors now get the current cell, and output material properties that the material model computes using information related to the current cell correctly.
(Juliane Dannberg, 2017/08/21)
New: There is now a visualization postprocessor that outputs the volumetric strain rate (the divergence of the velocity).
(Juliane Dannberg, 2017/08/17)
New: There is now a new cookbook that describes how to use melt transport in a convection model. This change also includes a new postprocessor that visualizes the melt fraction material property that is computed by some material models.
(Juliane Dannberg, 2017/08/14)
New: Sparsity patterns of the system matrix now use the current_constraints instead of the static constraints. This allows new kind of constraints in the system and reduces the number of nonzero entries in the system matrix.
(Timo Heister, 2017/08/01)
New: With a recent developer version of deal.II (9.0.0.pre) ASPECT can now output particle data using deal.II functionality. This allows compressed vtu output, and the same MPI I/O grouping options that are already available for the visualization postprocessor. The ascii particle output format no longer exists and instead generates (nearly identically formatted) gnuplot output.
(Rene Gassmoeller, 2017/07/26)
Fixed: The diffusion dislocation and drucker prager material models can now better handle cases where parameters or material model inputs are slightly outside the range of what is expected for the mantle, and in these cases they now compute reasonable viscosities instead of triggering floating point exceptions.
(Juliane Dannberg, 2017/07/18)
Changed: Rename the name of dynamic topography subsection from "Dynamic Topography" to "Dynamic topography".
(Shangxin Liu, 2017/07/14)
Changed: In models with melt transport, the stabilization now uses the maximum of solid and melt velocity, instead of using the melt velocity alone.
(Juliane Dannberg, 2017/07/12)
New: Aspect now supports operator splitting as a new solver scheme. This allows it to decouple advection and reactions between compositional fields, and can also be used for temperature changes related to these reactions. As part of this scheme, material models now have an optional additional output that computes reaction rates, and heating models have a new output that compute the corresponding rate of change in temperature. An example is given in a new cookbook.
(Juliane Dannberg, 2017/07/04)
New: There is now an 'install' target, so ASPECT can be installed using "make install". The installation path is given by CMAKE_INSTALL_PREFIX.
(Timo Heister, 2017/06/18)
New: Added a cookbook that uses the dynamic topography and geoid postprocessor in a simple spherical shell harmonic perturbation model run. Added the geoid output and lower boundary dynamic topography output to the existing 'S20RTS initial condition' cookbook.
(Jacky Austermann, 2017/06/12)
New: Adds a Compositing material model to allow selecting material properties as generated from a number of other material models.
(Jonathan Robey, 2017/05/26)
New: Boundary temperatures can now be prescribed as a combination of several plugins in the same way it is possible for initial temperatures. Operators to combine the models are also available.
(Rene Gassmoeller, 2017/05/24)
New: The viscoplastic material model now outputs the cohesion and friction angles which can depend on the strain.
(Anne Glerum, 2017/05/23)
New: There is a new initial composition plugin called 'porosity' that initializes the porosity to the equilibrium melt fraction if the material model provides one. Other fields are left unchanged, and the plugin does not work if there is no equilibrium melt fraction provided by the material model.
(Rene Gassmoeller, 2017/05/19)
New: The adiabatic initial conditions plugin 'initial profile' can now use a reference function to initialize the composition, instead of using the initial composition plugin. This is useful, if the initial composition plugin depends on the adiabatic conditions and can therefore not be used for computing the initial profile.
(Rene Gassmoeller, 2017/05/18)
New: Boundary names for all geometries are now consistently named "top" and "bottom". Old names are accepted for now.
(Timo Heister, 2017/05/17)
New: Aspect can now initialize the compositional field by supplying a list of plugins and operators determining how each plugin modifies the field. The operators are specified as a new input file parameter 'List of model operators', which takes a commaseparated list taken from the selection add, subtract, minimum and maximum. This list defaults to add if it is not given in the parameter file. If it is given, it may either be of length 1 (in which case all plugins modify the compositional field in the same way), or of the same length as 'List of model names'.
(Bob Myhill, 2017/05/16)
New: Aspect can now create initial temperature conditions by supplying a list of plugins and operators determining how each plugin modifies the temperature field. The operators are specified as a new input file parameter 'List of model operators', which takes a commaseparated list taken from the selection add, subtract, minimum and maximum. This list defaults to add if it is not given in the parameter file. If it is given, it may either be of length 1 (in which case all plugins modify the temperature field in the same way), or of the same length as 'List of model names'.
(Bob Myhill, 2017/05/16)
New: The sphere geometry model can now be used with the spherical constant boundary composition and ellipsoidal chunk can now be used with the spherical shell initial temperature models.
(Bob Myhill, 2017/05/16)
New: There is now a visualization postprocessor for geoid data.
(Ian Rose, 2017/05/16)
New: Added a postprocessor which visualizes the spd factor for the newton solver. This factor is used in the Newton solver to make sure the Jacobian stays Positive definite. For more info see the Utilities function compute_spd_factor.
(Menno Fraters 2017/05/16)
New: Rewrote the Drucker Prager material model into the new evaluate style and added the derivatives of the viscosity wrt the strainrate and pressure. Also created a test to test the derivatives against a finite difference derivative.
(Menno Fraters 2017/05/16)
New: Added a simple nonlinear test, which contains a simple nonlinear material model which has the derivatives of the viscosity wrt the strainrate and pressure and tests the derivatives against a finite difference derivative. This will be useful later on for benchmarks.
(Menno Fraters 2017/05/16)
New: A new particle property is added which indicates the presence of melt greater than the melt transport threshold at the particles position. If melt is not present a 0 is recorded. If melt is present a 1 is recorded. Only works if there is a compositonal field named "porosity". A second new particle property is also added which indicates the value for each compositional field. This can be used as a preliminary way to track the petrological evolution of material.
(Joe Schools, Rene Gassmoeller, 2017/05/15)
New: The dynamic topography postprocessor now uses the consistent boundary flux method for computing surface stresses, which is significantly more accurate. The postprocessor also exposes a method for getting the dynamic topography vector, so that the visualization and geoid postprocessors do not need to duplicate effort.
(Ian Rose, 2017/05/15)
Changed: The default number of grouped files has been changed from 0 (i.e. the nunmber of processors) to 16 in order to keep the number of output files small if not explicitely stated otherwise.
(Jacky Austermann, 2017/05/15)
Changed: The boussinesq approximation formulation is now renamed to Boussinesq approximation.
(Bob Myhill, 2017/05/14)
Fixed: Nonzero prescribed velocity boundary conditions used a linear instead of the correct mapping. This caused incorrect values on curved boundaries.
(Timo Heister, 2017/05/12)
Changed: ASPECT's seismic anomalies postprocessor produced spurious anomalies as a result of laterally averaging velocities in depth slices, and then smoothing slices. The new postprocessor provides two options, given by the Average velocity scheme variable. The option reference profile provides a percentage anomaly relative to the Vp and Vs calculated by evaluating the material model at the PT conditions given by adiabatic conditions. The lateral average provides an anomaly relative to the laterally averaged velocity in the model at that depth. This velocity is calculated by linear interpolation between volumetric averages calculated within depth slices. The number of depth slices in the domain is userdefined. This second option may give odd results if there is a jump in seismic velocity not aligned with the depth slices, so in general, the first option is preferred.
(Bob Myhill, 2017/05/12)
New: Functions [boundary  temperature; velocity; traction] now allow user defined Coordinate Systems [cartesian; spherical; depth].
(Matt Weller, 2017/05/12)
Changed: The names of ASPECT's data directories now follow the same naming scheme used for the source and include directories. The conversion scripts in the doc/ directory have been adjusted to correctly modify parameter and source files to the new naming scheme.
(Rene Gassmoeller, 2017/05/12)
New: ASPECT can now compute geoid in 3D spherical shell geometry. The geoid is calculated in spherical harmonic domain and the final results are transferred into spatial domain. The users can also choose to output the spherical harmonic coefficients of geoid, density contribution part, surface dynamic topography contribution part, and CMB dynamic topography contribution part respectively.
(Shangxin Liu, Ian Rose, 2017/05/11)
New: Added functions to compute weighted p norm averages (Utilities::weighted_p_norm_average) and the derivatives of these weighted p norm averages (Utilities::derivative_of_weighted_p_norm_average) to namespace Utilities. The derivatives function is templated to be able to compute derivatives which are doubles and tensors.
(Menno Fraters 2017/05/10)
Changed: The chunk geometry now removes the manifold id only from the boundaries and sets the correct boundary objects for deal.II versions prior to version 9. For deal.II 9, only the manifold is used, for which the push_forward_gradient function was implemented to compute the normal vectors. This way, velocity anomalies along mesh refinement levels are removed.
(Anne Glerum, 2017/05/10)
New: Allow additional RHS force terms in the Stokes system by enabling the parameter "Enable additional Stokes RHS" and filling AdditionalMaterialOutputsStokesRHS in the material model.
(Timo Heister, 2017/05/09)
New: 'nearest neighbor' particle interpolator: gets properties from the nearest particle in the same cell. If the cell is empty it gets properties from the nearest particle in the nearest cell.
(Jonathan PerryHouts, 2017/05/09)
Changed: The material model interface now contains a base class for named additional outputs and a derived class that that can be filled with output for the seismic velocities in the evaluate() function. This replaces the member functions seismic_Vs and seismic_Vp in the material model inteface, and can now be used to generate graphical output for other quantities as well. This change also removes the postprocessors 'seismic_vp', and 'seismic_vs'. Instead there is a postprocessor 'named additional outputs' that outputs all available named output quantities. The file doc/update_prm_files_to_2.0.0.sed was updated to modify parameter files to use the new postprocessor.
(Juliane Dannberg, Timo Heister, 2017/05/09)
Added: A new heating model (compositional_heating) that allows users to specify a different internal heating rate for each compositional field. Unlike the radioactive decay heating model, the internal heating rate for each compositional field is constant through time.
(John Naliboff, 2017/05/08)
New: The dynamic topography post processor now also calculates the topography at the bottom of the domain (and not only the upper surface).
(Jacky Austermann, 2017/05/08)
Changed: The unit tests are now a separate cmake project that is configured automatically. To speed up scanning of dependencies, running ctest will no longer rebuild aspect if the binary is out of date. Issues with using "ninja" as the generator have been fixed.
(Timo Heister, 2017/04/29)
Changed: ASPECT's 'particles' were initially introduced as 'tracers', and the naming scheme was never unified. In order to use a more consistent and simpler to remember structure all remaining references to 'tracers' have been replaced by 'particles'. This change is unfortunately incompatible with existing user plugins, and existing parameter files. The provided scripts doc/update_source_files_to_2.0.0.sed and doc/update_prm_files_to_2.0.0.sed allow an easy conversion of existing user plugins and parameter files to the new naming scheme.
(Rene Gassmoeller, 2017/04/24)
Changed: The names for all initial condition plugins are now unified to the universal scheme 'initial_property' that is planned for ASPECT 2.0. This change is unfortunately incompatible with existing user plugins, and existing parameter files. The provided scripts doc/update_source_files_to_2.0.0.sed and doc/update_prm_files_to_2.0.0.sed allow an easy conversion of existing plugins and parameter files to the new naming scheme.
(Rene Gassmoeller, 2017/04/24)
Changed: The names for all boundary condition plugins are now unified to the universal scheme 'boundary_property' that is planned for ASPECT 2.0. This change is unfortunately incompatible with existing user plugins, but the provided script doc/update_source_files_to_2.0.0.sed allows an easy conversion of existing plugins to the new naming scheme. Parameter files are not affected, because the naming of subsections already follows the new structure.
(Rene Gassmoeller, 2017/04/24)
New: Initial composition conditions can now be specified as a list of plugins. Their initial compositions are summed to generate the final initial condition. For this purpose there is a new input file parameter 'List of model names', and a new manager class that owns all of the initial composition plugins. Old input file parameters and the Simulator access function 'get_compositional_initial_condition' have been deprecated. Note that there is no longer a default initial composition (previously it was 'function'), but a plugin needs to be specified.
(Rene Gassmoeller, 2017/04/23)
New: Initial temperature conditions can now be specified as a list of plugins. Their initial temperatures are summed to generate the final initial condition. For this purpose there is a new input file parameter 'List of model names', and a new manager class that owns all of the initial temperature plugins. Old input file parameters and the Simulator access function 'get_initial_condition' have been deprecated.
(Rene Gassmoeller, 2017/04/23)
Changed: With a sufficiently new deal.II (9.0.0.pre), the spherical shell geometry no longer uses boundary objects, but lets the SphericalManifold class handle all geometry tasks. Using older version of deal.II the manifold is used for mesh refinement, and boundary objects are used otherwise. This results in improved meshes for the side boundaries of octants of 3D spheres in both cases.
(Anne Glerum, Rene Gassmoeller, 2017/04/19)
Changed: Entries about new contributions are no longer stored in doc/modules/changes.h, but instead each contribution is stored as a single file of the form YYYYMMDD_name in doc/modules/changes/. This creates less conflicts when multiple parallel branches are merged.
(Rene Gassmoeller, 2017/04/17)
Changed: The visco_plastic material model now uses a single compositional field for strain weakening, which can be calculated with the integrated strain invariant particle property or an equivalent compositional field plugin located in the benchmark buiter_et_al_2008_jgr.
(John Naliboff, 2017/04/14)
Changed: The folder benchmark/ was renamed into benchmarks/ to be consistent with our directory tests/.
(Rene Gassmoeller, 2017/04/14)
Changed: The global statistics information (time, timestep, degrees of freedom, solver iterations), is now written at one point in a new postprocessor 'global_statistics' instead of wherever they happened to be available. This allows to control the order and format of the columns in the statistics file, and fixes a bug in the statistics file, in which data from later timesteps was written into lines of previous timesteps in case of nonlinear solver schemes. Additionally, the postprocessor by default now outputs only a single line per timestep also for nonlinear solver schemes. To restore the previous behavior (one line per nonlinear iteration) there is a new input parameter "Postprocess/Global statistics/Write statistics for each nonlinear
iteration". A consequence of this change is that statistics about the initial refinement steps is only written if the "Mesh refinement/
Run postprocessors on initial refinement" parameter is set to true.
(Juliane Dannberg, Rene Gassmoeller, 2017/04/14)
Changed: aspect now outputs only relative nonlinear residuals of nonlinear iterations in the screen output. In addition, the number of the nonlinear iteration is included in the screen output.
(Juliane Dannberg, 2017/04/13)
New: Aspect now supports postprocessing of nonlinear iterations, in particular generating graphical output for each iteration.
(Juliane Dannberg, 2017/04/12)
New: aspect now provides as script that – when used together with the deal.II parameter GUI program – allows for a graphical creation and modification of input parameter files. All available parameters are listed, including their documentation, type, allowed range, and default value. The parameter file written by the GUI will only contain values that are different from the default values, to keep the file easily readable.
(Timo Heister, Rene Gassmoeller, Juliane Dannberg, 2017/03/28)
New: aspect now supports the –outputxml flag to generate .xml parameter files that can be edited using the deal.II parameter GUI.
(Timo Heister, 2017/03/24)
New: Compressible computations now work with discontinuous pressure elements.
(Timo Heister, 2017/03/23)
New: The box geometry can now include initial topography.
(Anne Glerum, 2017/03/16)