Merge lp:~asc/fluidity/extrudeup into lp:fluidity

Proposed by Adam Candy
Status: Work in progress
Proposed branch: lp:~asc/fluidity/extrudeup
Merge into: lp:fluidity
Diff against target: 0 lines
To merge this branch: bzr merge lp:~asc/fluidity/extrudeup
Reviewer Review Type Date Requested Status
Fluidity Core Team Pending
Review via email:

Description of the change

An extension of the extrude code to mesh to both an arbitrary bottom bathymetry and top topography.
Developments are summarised in:

This is required for ice shelf ocean cavity modelling if we are to run in parallel and use the multigrid preconditioner, and in particular the vertical smoother.

Note that while the trunk was frozen, a merge request was made during development to a copy of the trunk - see:

To post a comment you must log in.
Revision history for this message
Adam Candy (asc) wrote :
Revision history for this message
Adam Candy (asc) wrote :

The changes do need documenting in the manual.

lp:~asc/fluidity/extrudeup updated
3853. By Paul Woodhams

Tidying up the edge-list callback. Removed some redundant code, fixed some MPI data types and added a global calculation of the minimum edge weight.

3854. By Stephan Kramer

Bug fix in petsc_readnsolve, for the case where no mesh needs to be read. A dummy mesh is created, but this was done with a bit of a broken hack, now fixed.

3855. By Cian Wilson

Improved error handling for remaps.

3856. By Tim Bond

Fix for bug lp:892228 making the schemata install honour prefix and datadir.

3857. By Cian Wilson

Remove spurious allocate that introduced a memory leak in r3855.

3858. By Patrick Farrell

Merge the dont-install-diamond branch.

3859. By Tim Bond

A one-line build-system-only fix adding a '-f' to an rm in make install, a
direct bug leading on from r3858 and highlighted by the Intel builder.

3860. By Brendan Tollit


This merge will correct the sign and number of additions of the weak velocity Dirichlet BC integrals when using a CV tested continuity equation for incompressible flow.

Code Changes:

- assemble/Divergence_Matrix_CV.F90. The variable ct_rhs_local is formed and added (with a minus) for each dimension in the procedure assemble_divergence_matrix_cv.

- schemas/prognostic_field_options.rnc and .rng. A mesh choice is permitted for the Diffusivity of a scalar field. Required for the some of the tests of the fix above and is a useful general addition.

Test Cases Removed:

- tests/darcy_p1dgp2_pressBCinlet_1d

- tests/darcy_p1dgp2_velBCinlet_1d

Test Cases Added:

- tests/darcy_p1dgp2_pressBCinlet. The one removed but now in 1,2 and 3d.

- tests/darcy_p1dgp2_velBCinlet. The one removed but now in 1,2 and 3d.

- tests/darcy_p0p1cv_velBCinlet. Checks the sign of the weak velocity Dirichlet BC aligned with cartesian axis. Single phase.

- tests/darcy_p0p1cv_velBCinlet_1solidphase. Checks the sign of the weak velocity Dirichlet BC aligned with cartesian axis. Two phase with the second representing the solid porosity.

- tests/darcy_p0p1cv_velBCinlet_rotated_domain. Checks the sign of the weak velocity Dirichlet BC NOT aligned with cartesian axis. Single phase.

- tests/mms_ns_p0p1cv_weak_velBC_steady. A mimic of the standard mms_ns test cases using p0p1cv with a weak velocity Dirichlet BC. Here the domain was rotated from a square to a diamond such as to have non Cartesian aligned velocity Dirichlet BC on all surfaces. Checks L2 velocity and pressure convergence is between 0.8 and 1.0. This is a short test.

- tests/mms_ns_p1dgp1cv_weak_velBC_steady. Similar to above but using p1dgp1cv. Checks L2 velocity and pressure convergence is between 1.5 and 2.15. This is a medium test.

3861. By Stephan Kramer

Using get_coordinates_remapped_to_surface() to fix

3862. By Brendan Tollit

This merge will add the capability when discretising the pressure
with continuous galerkin to test the continuity equation with the
control volume dual function space (rather than the CG function space).

This is tested on a range of cases checking for capturing balances and
getting the correct order of convergence.

This is documented in the manual (theory and usage).

It is described in the manual and schema that this will only work
for incompressible flow and not work with the free surface,
wetting and drying and implicit solids two way coupling models.
Also the pressure mesh must use the Lagranian element type. This is
also restricted to only work with the available control volume shape

This will produce a non symmetric pressure correction matrix which
must be considered when selecting the pressure solver options.

3863. By j-bull08 <email address hidden>

removing irritating ewrite in smoothing module (used for dynamic LES and Helmholtz smoothing algorithms)

3864. By Tim Bond

Commit entirely in documentation targetting bug lp:891733 and bringing in the
revision format from the root to the manual Makefile. Also updating
the front page to refer to 'branch' rather than 'trunk version'.

3865. By Tim Bond

Commit purely in documentation, providing fixes for the errors noted in
bug lp:885261. Some duplicate bibliography entries removed, some missing
fields inserted, a pair of missing braces added, and one entry reclassified
from article to book.

3866. By Tim Bond

Commit entirely in documentation targetting bug lp:891733 and in addition to
commit for r3864; I had failed to note that LaTeX could complain about the
presence of non-alnum characters. Thus, adding the 'tr' back in to strip all
punctuation. Thanks to Brendan for spotting this one.

3867. By Christian Jacobs

Minor updates to the mphase_rising_body test case. Changed the length from 'special' to 'short'. Passes testing on the ctjacobs-multiphase buildbot queue.

3868. By Cian Wilson

Remove erroneous dimension from Velocity. Wasn't affecting the test in any way.

3869. By Tim Bond

Addressing bug lp:894770 by removing unused tests (either marked 'special'
or which don't have a .xml).

3870. By Jon Hill

Fixing the FLML fiels for the GLS KP test such that the wind surface stress returned from python is the correct dimension (1 not 2)

3871. By Patrick Farrell

When setting a vector field from Python, check the length of the iterable
returned by the user, and check that it is the length we expect. Fixes

3872. By Tim Bond

Change to documentation only - preparatory manual work for the changes to
Diamond build and install methods.

Note that this does not address (and we have not in the past addressed) the
needs of diamond for supporting software to exist on the system. This probably
needs to be added to one of the appendices at some point; specifically libxml2
and python-lxml, assuming I'm remembering correctly that they are hard

3873. By Brendan Tollit

Add an option to include the Source field directly to the right hand side
for prognostic scalar fields. Adjust CG, DG, FV and CV to
act on this as necessary. Include a very simple two field eigenvalue
(using the time step loop as a power iteration loop) 1d test
case for each discretisation checking order of converegence to test
this new functionality.

This also includes a comment in the schema that variations in
the Source field across subcycled time steps is not considered,
a constant value across the whole time step is assumed (whether
added directly or tested with shape_rhs).

In assemble/Advection_Diffusion_CG.F90 a redundant optional
variable passed in called extra_discretised_source is removed, as
well as the code that added it to the rhs.

3874. By Tim Bond

This merge supplies:

* An updated version of libspud
* An install target for diamond in the root fluidity makefile
* A target in the root fluidity makefile to install user schemata

3875. By Cian Wilson

Loosen tolerances on this test to hopefully make buildbot green again. Still curious why Gerard's changes made a test that's been stable for years change.

3876. By Cian Wilson

Cleaning up and making consistent the exclusion of tags in make test and make mediumtest (also deleting make mediumzoltantest as buildbot didn't use it anymore). Most importantly adding an algencan tag and 2dadapt tags where appropriate to medium tests so that they don't fail when fluidity is not configured with algencan (the norm) or 2d adaptivity (unusual).

3877. By Cian Wilson

This missed out on a 2dadapt flag in the merge.

3878. By Tim Bond

Minor relaxation on tolerance to allow for Precise.

3879. By Tim Bond

A slight relaxation of the tolerance on this test to cater for Precise.

3880. By Jon Hill

Editing geopressure_conv test Makefile to use fldecomp in the current checkout, not the centrally installed one

3881. By Brendan Tollit

This merge will add the capability for the enforce discrete property solenoidal projection when
the lagrange multiplier is CG to test the divergence of the interpolated field with the CV dual.
This is akin to what was added for the velocity-pressure solve previously via this branch.
This adds an option to the schema, commenting that this will make the matrix non symmetric.

There is also a small correction to an addition of the known velocity divergence to the projection
rhs to use ctp_m rather than ct_m (in this solenoidal projection routine).

This is tested via the solenoidal unittest, with an extra case added to check for CV divergence.
Non used code was also removed from here.

3882. By Brendan Tollit

This merge will add a procedure to be able to have non zero pressure Dirichlet
boundary conditions when using a CV discretisation for pressure. As for the CG
pressure BCs the integrals are included for both weak and strong Dirichlet.
For multiphase the phase volume fraction is included via a FE spatial
interpolation, akin to their inclusion in interior domain terms.

Code Additions:

- assemble/Pressure_Dirichlet_BCS_CV.F90. Adds the BC integrals via forming
the same local matrix as the weak velocity BCs but uses it transposed,
which is similar to pressure CG version(s).

Code Changes:

- assemble/Momentum_Equation.F90. If cv_pressure calls the above routine
after assembling the main momentum equation terms.

- assemble/ Update for new file/module (using .o rather than .F90
as spotted by Cian)

- assemble/Makefile.dependencies. Update for new file/module.

Test Cases Added:

- tests/darcy_p0p1cv_pressBCinlet. Simple channel flow model using darcy
flow with a pressure gradient using p0p1cv for 1,2 and 3d. Analytic
and very fast.

- tests/darcy_p0p1cv_pressBCinlet_1solidphase. Same as above but with an
extra phase to represent the porous media for darcy flow. Analytic
and very fast.

- tests/darcy_p0p1cv_pressBCinlet_rotated_domain. Similar to the above
but with a rotated domain as the pressure BCs have a normal component
so worth checking non axis aligned integrals. Analytic and very fast.

- tests/darcy_p0p1_test_cty_cv_pressBCinlet. Similar to above but with
CG pressure and CV continuity. This is added as not many CG pressure
BC test cases appear to exist. Analytic and very fast.

- tests/darcy_p0p1_test_cty_cv_pressBCinlet_rotated_domain. Same as
above but rotated. Analytic and very fast.

- tests/darcy_p0p1_test_cty_cv_velBCinlet. Similar to above but with
weak velocity BC instead. Just to test a combination of two previously
merged branches and the test case is very similar to above.

3883. By Rhodri Davies

Merging Stokes Options Check branch into trunk. Thanks to skramer for review.

Happy New Year to all!

3884. By Rhodri Davies

Some string continuation fixes which will hopefully placate the cx1 build. Also removed unused variable ncars from populate state.

3885. By Brendan Tollit

Relax two tolerances (1.0e-09 to 2.0e-09) from a previous merge that seems to affect the i386 builds
for the 3D cases of these tests.

No idea why this is a problem for 3D (and not 1D or 2D) and for i386 and not gcc.

3886. By Jon Hill

Adding a try block around the import of scipy in fluidity This allows use of the majority of state_types functionality without scipy being installed, which is useful for HECToR

3887. By Jon Hill

Fix for geopressure_convergence test. This works on my 32 bit laptop

3888. By Patrick Farrell

Cian pointed out in lp:904816 that running the Burgers equation and
shallow water adjoint tests modifies some files that exist in bzr.
This commit should hopefully fix this. The issue is very minor (utf8
vs. utf-8 in the header of XML files, and minor variations in gmsh

3889. By Gerard

Bugfix for Bug #900774.

This is a work around for a known bug in the advance option when using stream IO for formatted reads:

The exact intel compiler version may have to be tweaked as the Intel fix has not yet been released.

3890. By Axelle Vire

Merge from lp:~avire/fluidity/fix-absorption-cg-bug.
This fixes the bug and tests it.

3891. By Axelle Vire

Change the test_source_absorption from short to medium.

3892. By Simon Funke

Loosing tolerance for the turbine tests a bit to make buildbot happy.

3893. By Patrick Farrell

Remove the time_averaged_vector_squared tensor diagnostic algorithm, as it
was broken for a while and didn't error; it is untested. Resolves lp:788620.

3894. By Simon Mouradian

merge salt finger fix

3895. By Jon Hill

Relaxing tolerences for two tests for the 32-bit issue.

3896. By Jon Hill

Adding back in a bug fix I did ages ago. It was removed when I incorporated changes from a 3rd party into the biology python module. Must be more careful in future and construct a test of this

3897. By Patrick Farrell

Rename libadapt's fdebug.h => fdebug_adapt.h. This fixes the build error caused when
a user has -Ifluidity/include in front of libadapt's -I../include. Fixes lp:915907.

3898. By Patrick Farrell

Forgot to commit the

3899. By Tim Bond


Updating the manual to reflect the new system of versioning, the new system
of tarball generation, and new system of obtaining tarballs. This removes
references to the stable release, replacing them with 4.1, which will be
formally implemented as of 4.1.3.

3900. By Adam Candy

Removal of the named solver reordering options.
Notes have been added to both the schema and Solvers.F90 stating the reordering mechanisms have not been tested, and how to use them if you want to try them out.
This addresses bug lp:818015.

3901. By Tim Bond

One-line fix in build system only, targetting bug lp:921464 by adding an
extra install line in the 'make install-diamond' target of
to install dxdiff.

3902. By Patrick Farrell

Incorporate the libtool config files from Fedora 15, to update libtool
to a more recent version. Our old libtool was too old to correctly
recognise gfortran 4.6. Fixes lp:918235.

3903. By Gerard

Should return 0 rather than non-zero when the -V option is specified.

3904. By Adam Candy

A help call to Fluidity also does not now complete with a non-zero error.

3905. By Florian Rathgeber

Sync libspud with spud trunk r512.

3906. By Tim Greaves

Fix in build-system only - targetting bug lp:921608 filed against
spud but also affecting Fluidity, which should fix the install-diamond
target in the Fluidity makefile. This brings libspud in Fluidity in
sync with r513 of lp:spud.

3907. By Tim Greaves

Commit purely in build system, reverting the growing untidyness of conflicting
prefixes trying to make a diamond install work from the libspud in Fluidity.
This goes back to a reconfigure with the user's prefix, then installs, then
reconfigures with the prefix that Fluidity expects to be used internally. This
ought to resolve problems with the spud schemas not getting installed.

3908. By Christian Jacobs

Merging fix-multiple-material-phase-python-diagnostic branch revisions r3897 to r3902 inclusive into trunk.

Summary of change:
We now pass the whole states array to calculate_diagnostic_variable if a Python diagnostic algorithm is used to compute the VelocityAbsorption, VelocitySource or Viscosity diagnostic fields. Otherwise, we just pass the submaterials array. Brendan has created a test case for this (pydiag_material_phase_support_multiple_velocity_children).

This resolves bug lp:800126.

3909. By Tim Greaves

Commit purely in build system. A path error in the spotted by Simon
Mouradian means that the flml schema was being installed in ~/.schemata rather
than into ~/.diamond/schemata. This fix modifies the path to point to the
correct location.

3910. By Brendan Tollit


This merge will permit the use of P2 control volumes for a tetrahedral mesh.
This extends the CV faces routine to add the p2cv tet shape functions.
The method to form the CV mass matrix is then changed to use a sub CV
analytic approach (for p1 and p2 elements one can calculate by hand the
sub CV fraction of the parent element) rather than lumping a FEM mass
matrix. Routines are added to get the cv mass and compute the cv mass.
Everywhere we could find that required a cv mass matrix now calls these
routines. Diagnostic routines to output the CV mass and the lumped FE mass
have been added. The capability to include the density in the
GridReynoldsNumber diagnostic has also been added. These last two
changes are included in the manual.

11 test cases are added (basic, advection, darcy, mmat, mms). A couple
of test cases where changed to not output cv stats as they didnt need it.

This permits p1dgp2 for multimaterial (although may well be buggy linked to
other features) and is known to not work with conservative bounded mesh
to mesh interpolation.

This was worked on by Cian Wilson and myself and reviewed/checked by Axelle.

3911. By Tim Greaves

Fix for lp:928771 , making an install of libspud's spudtools into the root
Fluidity directory a depenency of 'make mediumtest', and adding a rule to the
root Fluidity to this end.

3912. By Jon Hill

Trivial fix to the two sinking velocity test so that the user is not asked which algorithm GMSH uses. Simple command line fix is all that is requried.

3913. By Jon Hill

Reverting accidental changes to ocean biology

3914. By Brendan Tollit

Relax two tolerances for the max GridReynoldsNumber from 1.0e-02 to
2.0e-02 for these two medium test multimaterial cases, to hopefully
make the i386-gcc4 build green.

3915. By Brendan Tollit

Relax tolerances on these two test cases slightly more again from
2.0e-02 to 2.5e-02.

3916. By Tim Greaves

One-line fix to build system only; correcting 'FLINKER' to 'FLLINKER'. Thanks
to Zhenhua Lin for spotting this one!

3917. By Adam Candy

A fix to ensure 'make schema' succeeds on a fresh checkout.

This commit adds a Makefile directive to install spud-preprocess, which is required by the 'schema' directive.
Note that this new directive does not interfere with the build of libspud, which is performed within its own directory.
It is only called when required by 'make schema'.

3918. By Tim Greaves

One-line fix in build system only, replacing a plain copy of bin/ in the
install target of the root makefile with a find-based copy to deal with
the appearance of subdirectories which are not wanted in the final install
but which cause non-zero exit states of the install.

The specific case being dealt with here is the tests/ directory made by the
unittest target of the makefile, as spotted by Lin Zhenhua.

3919. By Tim Greaves

(Hopefully) minor fixes to the diamond_validation test, removing the dependency
on gtk.gdk which doesn't look to be necessary in the test (and which breaks on
systems with no DISPLAY available), and adding the local copy of the diamond
source to sys.path to allow diamond.debug and diamond.schema to be imported in
situations where the system doesn't have a central diamond install.

3920. By Tim Greaves

Bringing Fluidity's version of libspud up to date with r.515 of the
libspud trunk.

3921. By Adam Candy

Correction of a mistake in a logging message of the gyre_2d test.

3922. By Adam Candy

A new test case: a P1DG-P2 version of the 2d gyre (gyre_2d).

Fangxin asked me how to set this up yesterday for Travers, so I thought it's worth adding it to the tests.
The diagnostic needed adjusting to account for the existance of negative velocities in the y-coordinate direction along the Western boundary (since we apply the Dirichlet no-slip conditions weakly here).

3923. By Adam Candy

Contributes to fixing bug lp:920944.
The netCDF reader used when reading a file specified under ../from_netcdf/file options now gives more feedback when the point requested is not present. It reports the coordinates and filename to facilitate easier debugging.

This fixes the problem reported by Yi HanSoo, where the error from the reader was ambiguous as to which points could not be located in which file. We may need to make similar changes to other instances of NetCDF reads in the code, or better, unify them all into one routine.

Merge request made and approved at:

3924. By Adam Candy

Further contributions to fixing bug lp:920944 (so it can be closed).
Two further instances of NetCDF readers now error more verbosely when the required data is not found. The reports include the coordinates (in both Cartesian and spherical, where applicable) and filename to facilitate easier debugging.

These additional changes are very similar to the change that has already gone in with the approved merge request at:
so I have pushed them straight to the trunk.

3925. By Adam Candy

Fix to bug lp:922025. This tidies up the manner in which the pressure initial condition is set from a free-surface height field provided in a netCDF file.

Summary of changes:
 - The special case, legacy method has been removed.
 - If the input format is not recognised, the code will abort with an error detailing the problematic field and the schema path of the invalid format.
 - The 'standard' format is now named 'raw' (instead of 'other'). This is the case where no post-processing is performed on the source data, and the field is initialised by the raw data present in the netCDF file.
 - Included logging messages to indicate which field is being populated and the source netCDF file (logging level 1).
 - Logging of the post-processing applied (logging level 3).
 - For the pressure boundary condition set from a free-surface field in particular, logging level 3 will report the min and max values of the field before and after the conversion.
 - A new section in the manual describing how to initialise the pressure field by specifying the free surface height. Removal of the description of the legacy method to achieve this. Other corrections to nearby sections.

There are currently no tests, examples or longtests that are affected by the above change, but possibly user-generated initialisation flml files that do use the legacy implementation of the pressure initial condition set from free-surface netCDF. In this case, the additional logging added with this change should make it easy to identify the change required to adopt the improved version of this import.

In short, the following example highlights the change necessary:
  The option path:
    /material_phase::Ocean/scalar_field::Pressure/prognostic/initial_condition::WholeMesh/from_netcdf/format/Free-surface height

  should become:

  (where the file location is specified under the 'from_netcdf' node in each case).

3926. By Adam Candy

New test case: netcdf_read_free_surface
This creates a valid netCDF file containing a free surface height in the domain x,y in [-1.2,1.2]. This is read in by Fluidity as a free surface and applied as an initial condition on pressure. From this, Fluidity calculates the free surface as a diagnostic, which is provided in the outputted VTU file, alongside a field containing the analytic function used to create the netCDF file in the first place (here described in The test compares the difference between these two fields, which should be small, due to the interpolation of the netCDF file.

In summary this case tests:
 - NetCDF reader
 - Reading of a free surface and conversion into a pressure initial condition
 - Creation of the free surface diagnostic from the pressure field (including its extrapolation down from the top surface)
 - Creation of prescribed scalar fields from Python

3927. By Adam Candy

A new test case: netcdf_read_errors
This checks the errors reported when an attempt to read an invalid NetCDF file is made. Here 'invalid' refers to a file that is itself an invalid, non-conforming NetCDF file, or is of a format not supported by Fluidity.

Five types of NetCDF files are checked:
 - One which does not provide all the data requested,
 - One is missing a dimension (i.e. it provides only a 1d field),
 - One is missing the main variable,
 - One contains an incorrectly-labelled dimension (as 'lat', not 'x'), and
 - One has the variable incorrectly labelled (as 'height', not 'z').

3928. By Brendan Tollit

This merge will tidy up, improve, test and document the single phase porous
media Darcy flow model. This will sync the porous_media options model with
all the darcy_... test cases that have appeared over the past couple of months.
The model that used to be initiated by the porous_media option is effectively
removed as it contained code that was never finished, consistent, tested or
documented and was made by people that are not involved in Fluidity any more.
It is now favoured to define the Darcy velocity absorption field via python
diagnostics rather than a hard coded internal algorithm. Sections are added
to the manual to explain the model equations, discretisation and necessary

Old tests cases are removed and new ones added.

3929. By Brendan Tollit

Correct a variable name in a ele_ngi check that was in a #ifdef DDEBUG
in assemble/Advection_Diffusion_CG.F90

3930. By Tim Greaves

Minor Intel-specific fixes, reducing line lengths which overrun in the
middle of quoted strings.

3931. By Stephan Kramer

Bug-fix for SampleNetCDF which is used in tidal boundary conditions. This bug would occur whenever a node was interpolated that is located exactly on one any of the constant longitutde or latitude lines of the input netcdf grid. In this case instead of interpolating between the value of the 2 nearest nodes, the value was extrapolated.

This code clearly needs some more tests. Coming up...

3932. By Axelle Vire

Loose the tolerance on this test slightly (with Brendan's consent) since it makes the trunk fails locally on my Maverick machine.

3933. By Axelle Vire

Relax a tolerance on this test with Brendan's consent. The test was passing locally but failed on independent buildbot branches.

3934. By Axelle Vire

Correct Brendan's option check regarding the use of CV for continuity with two-way coupling. Apologies that it hasn't been done before the merge.

3935. By Axelle Vire

Forgot an option check. Sorry for the noise.

3936. By Patrick Farrell

Remove the finest simulation (_E) from the Burgers MMS replay test.
This should hopefully speed up the test so that it falls within
buildbot's 20-minute limit ..

3937. By Brendan Tollit

Remove the porosity from the DG_CourantNumber and ControlVolumeCFLNumber
diagnostic fields. Add three new diagnostic fields being
InterstitialVelocityCGCourantNumber, InterstitialVelocityCVCourantNumber
and InterstitialVelocityDGCourantNumber which are only for porous media
flow where the Darcy velocity (= porosity * interstitial velocity) is
solved for.

These are magic named diagnostic fields rather than algorithm names due to
the way the courant number fields are already used.

Everywhere in the options where ControlVolumeCFLNumber can be selected
(such as CV face value schemes) permit the selection of

For CV (or coupled CV) discretised fields there is a restriction that all
the 'porosity' fields used must be the same with the same theta averaging
also, due to the way this is obtained from one call in Field_Equations_CV.
The default options when used satisfy this constraint.

For adaptive time stepping also permit the selection of
InterstitialVelocityCGCourantNumber. If an InterstitialVelocityCG/CV
CourantNumber is used for adaptive time stepping then always force its
calculation in this routine as the options here may be different to a
field that may exist in the state.

For a scalar field discretised with DG add the small new capability to
select which Courant number field to use for the temporal sub cycling
with the available selections being DG_CourantNumber and
InterstitialVelocityDGCourantNumber. To avoid changing all the test cases,
by default if not activated this option will do as before and use

Add a copy of a short darcy flow test case that now discretises the tracer
with DG using subcycling and adaptive time stepping related to the new
interstitial velocity courant number fields.

Adjust all relevant darcy test cases to also test this.

Add a routine in assemble/Porous_Media.F90 to find the theta averaged
porosity field, to avoid a code copy in the adv-diff CG/CV/DG routines.

Add to the manual a description of the three new diagnostic fields and
adjust the configuring Porous media flow section as required.

3938. By Brendan Tollit

Small correction to last merge. Only use the relevant variables from
Global parameters and correct some repetetive English in a couple of

3939. By Brendan Tollit

Relax two tolerances for the intel build for this recently added test.

5.0e-03 --> 8.0e-03 (integral of tracer)

5.0e-04 --> 6.0e-04 (min of tracer)

3940. By Jon Hill

Shortening gls-KP test by remove one of the four tests within this

3941. By Rhodri Davies

Change solver and steady state tolerances to speed this test up. Now runs in less than 1 minute on my system.

3942. By Jon Hill

And four became two. Hopefully this passes in less than 10 mins on buildbot

3943. By Tim Greaves

One-line fix in buildsystem only targetting bug lp:920446.

This checks for an empty DESTDIR and replaces such with / rather than supplying
an empty --root= which was causing problems with distutils.

Thanks to Patrick, Florian, and Stephan for input.

3944. By Jon Hill

Shortening the test again. Should be half the time now

3945. By Christian Jacobs

Small changes to the mphase_tephra_settling test to reduce the runtime. Passes locally.

3946. By Tim Greaves

Merging upstream updates to spud into the Fluidity trunk; this brings
the local copy in Fluidity in sync with r.520 of the spud trunk.

3947. By Tim Greaves

Following the update of spud in Fluidity to r.520 of lp:spud, this commit
updates all options files in the Fluidity trunk, resulting from running

3948. By Tim Greaves

r.3947 failed; the system it ran on had an old version of spud/diamond
installed. The Spud 1.1.4 (lp:spud r.520) packages are now out and this is the
result of running tools/ on a system with those packages

3949. By Lawrence Mitchell

Avoid memory blowup in update_options

When schema files are read in diamond, the tree-structure is memoised
internally to improve performance. But this comes at the expense of
additional memory use. Previously in update_options we would read the
relevant schema file for every file we were checking. This would
never hit the previously memoised values, since object ids were
different. Instead, build a dictionary of pre-parsed schemas and
just grab the relevant one when checking a file.

3950. By Stephan Kramer

This deals with bug

"The script gmsh2triangle tries to identify isolated nodes that are not attached to any elements (isolated nodes) and leaves these out of the output triangle files. This requires a renumbering of the nodes. However this renumbering is only applied to the .ele file but not .edge/.face file. Thus this renumbering only works correctly when the isolated nodes have node numbers that are bigger than any of the boundary nodes. Otherwise the node numbering of the surface mesh and the interior mesh no longer correspond leading to very onobvious errors in fluidity."

Fixed by no longer applying any renumbering. This was decided to be the best fix as gmsh meshes are now also be readable directly by fluidity, in which case isolated nodes would be read as well. So if isolated nodes are present in the input gmsh .msh it's up to the user to fix.

3951. By Simon Mouradian

A tool to radially scale .vtu files on the sphere.

3952. By Cian Wilson

Updating to new base schema.

3953. By Simon Mouradian

fix for create_param_sweep

3954. By Brendan Tollit

Precise build fix for the cv_mass_matrix_check_p1 and
cv_mass_matrix_check_p2 test cases.

Issue was actually gmsh. These test cases require a one
element mesh to do some very basic checks of the CV mass
matrix. The gmsh with the precise buildbot doesnt seem to
be able to do that anymore with these .geo files. Therefore
commit the very simple .msh files that do work.

Adjust the test Makefile's as required.

3955. By Brendan Tollit

Remove options to use the CV Ultimate limiter from metric advection as the
code does not permit it. Add 2 tests for the advection of a scalar field
using the CV Ultimate limiter as there were none. Both use a P1 FE face
value before limiting. One advects a step change, the other is a copy of
an mms case. Also add the mms case for the CV Sweby limiter for comparison.
For the step advection Ultimate is far better than Sweby but not quite as
sharp as HyperC, which is expected. For the mms test case it was found
necessary to apply a strong BC for the Ultimate limiter case so that
it will converge to a steady state - this however reduces the order
of convergence achieved.

No actual code changed, only options schema and test cases.

tests/mms_tracer_cv_adv_steady/MMS_E_cv.flml is removed as it is not used.

Linked to bugs:

3956. By Brendan Tollit

Remove two test cases that have a memory leak on Precise. This is
linked to bug report:

and branch:


3957. By Jon Hill

Minor chnage to configure to get the HECToR build working

3958. By Stephan Kramer

Fix for parallel scalar dg subcycling when configured with debugging. It tried to invert the local mass matrix of non-owned elements, which have not been assembled. Fixed by telling it not to do so. Added further asserts so that similar bugs will also be catched in 2d.

3959. By Stephan Kramer

Fix for precisison issues on precise. Cian helpfully provided a robust fix by reverting to an earlier version, but since I'm impatient as ever I preferred to keep the non-quadratic algorithm using lexsort. This means Cian may forever blame me if this breaks again.

3960. By Jon Hill

Minor fix to the recent dg subcycling merge. mass should not be altered in this routine, so the last if block should be inv_mass. Will fix HECToR and precise builds

3961. By Jon Hill

Loosening tolerences on this test to make it pass on Natty and Precise. A note in the XML says what the tolerences should be

3962. By Simon Funke

Loosen test tolerance for turbine_flux_dg_2d to make it pass with precise

3963. By Simon Funke

Fix the turbine_flux_dg_2plus1 test by loosing the tolerance slightly.

3964. By Simon Funke

Fix turbine_flux_penalty_2plus1 test by slightly loosing the tolerances

3965. By Simon Funke

Fix the turbine_flux_penalty_2d test by slightly loosing the tolerances.

3966. By Simon Funke

Fix shallow_water_adjoint_default_controls_2d by slightly loosing the tolerance.

3967. By Simon Funke

Fixing the wetting_and_drying_balzano1_cg test by choosing a slightly smaller timestep.

3968. By Simon Funke

Now this is annoying: Apparently I need to reduce the timestep from 600s to 300s to get the test that worked before running on precise!

3969. By Simon Funke

Some more tolerance loosening for turbine_flux_penalty_2plus1 and turbine_flux_dg_2plus1

3970. By Tim Greaves

Updating the femtools Makefile.dependencies which appears to have been missed
at r3958

3971. By Tim Greaves

Minor commit in build system and tests to ensure that 'make distclean' does in
fact return the build tree to a fully clean state.

3972. By Tim Greaves

One-line fix targetting bug lp:850727 which had only been partially
implemented. This should complete the fix.

3973. By Jon Hill

One of the MPI_AllReduces is only necessary when using additional adapt iterations. This commit fixes the code so that it only does the collective communication when the additional adapt iterations option is being used.

3974. By Jon Hill

Move all C/Fortran tools to using the c_iso_binding module. This prevents random errors that have been occurring on some build tests

3975. By Jon Hill

Fixing bug in vertical integration - wrong types being passed over from C

3976. By Rhodri Davies

Speed this test up further

3977. By Rhodri Davies

Merge in branch that remove leading whitespace in diagnistic dependency lists

3978. By Christian Jacobs

Merging lp:~fluidity-core/fluidity/bc_from_field branch revisions r3962 to r3975 inclusive into trunk.

Summary of change:
Users can now enforce boundary conditions that use boundary data from another field. This can be done by selecting "from_field" (from the list of "constant", "python", ..., and "from_field" input types for the BC) and specifying the name of the 'parent' field which contains the boundary data.

A short test case called bc_from_field is included.

3979. By dujuan

Combining EnKF framework with ReducedModel

3980. By Tim Greaves

Reverting r.3979 until it's been through the review and test process; Juan Du,
please could you make a branch and commit these changes to that branch, then
let me know to make you a buildbot queue for it, and put in a merge request.


3981. By David Robinson <email address hidden>

A small edit to include velocity in GetFieldNames

3982. By Alexandros Avdis

Correction to rotate2ll.

3983. By Tim Greaves

Two minor fixes on the move to precise, entirely in test framework:

* netcdf_read_errors had a bashâ‚‹specific construct; making generic to
   allow it to be parsed with dash
* sloshing_tank needs a very small relaxing of one check; confirmed
   with the test owner (Simon Funke)

3984. By Lawrence Mitchell

Make linear system assembly local (non-communicating)

This merge brings in non-communicating assembly routines for all
equation forms. It also adds OpenMP threaded assembly for DG and CG
Momentum and CG advection diffusion. To enable the latter, configure

For non-communicating assembly, we assemble in halo elements for DG as
well as CG such that each process has complete information for its
local dofs. PETSc matrices are then assembled with the option
MAT_IGNORE_OFF_PROC_ENTRIES, which makes the PETSc assembly a no-op.

OpenMP threading makes the assembly loops iterate in colour order.
The correct colouring is stashed on the topology mesh between adapts.
A number of routines are not thread-safe. If you call them in
threaded code they will now abort, fix it!

3985. By Lawrence Mitchell

Fix null dereference when checking halo types

Logical evaluations aren't necessarily short-circuited when an
argument evaluates to .false., so

   if (associated(foo) .and. (foo%bar == baz))

may dereference foo even if it is unassociated. So don't do it.

3986. By Stephan Kramer

Removing three places with hard-coded values (two different ones) for the radius of the earth. This was all in dead code. Hard-coding this is not a good idea, as the mesh generator may have used another one.

Two more places remain: femtools/projection.cpp and ocean_forcing/climate_reader.cpp, these are used in determining what layer of 3D input data to use. This will be fixed (instead using the outer radius
of the original input mesh coordinates) in the rewrite of the netcdf readers.

3987. By Stephan Kramer

Fixing gmsh reader to read meshes on the sphere (i.e. meshes with topological dimension 2, and coordinate dimension 3).

Also adding a parallel spherical_patch test case that tests this reading, writing out to a checkpoint, and flredecomping to a different number of processes.

Some optimisation and cleaning up of Read_GMSH.F90:
- prevent reading of the gmsh file twice. This was because read_gmsh_simple() called identify_gmsh_file() to establish
various dimensions, which it can only do by reading the entire file. Then an appropriate shape functon was allocated
and read_gmsh_to_field was called which read the file again.
- the only version of read_gmsh_files to remain is the _simple version (as this was the only one in use). It
first reads in all the data, then establishes the necessary dimensions and then allocates the appropriate femtools
- the dimension of the read gmsh mesh is now established from the topology of the mesh, basically looking at the
highest dimension elements present, i.e. if there's tets or hexes it's 3d, otherwise 2d (1d gmsh reading is untested)
Previously this was done by looking at the z coordinate and seeing if it was small using some arbitray, hard-coded definition
of small. This is obviously not a good idea.
- the dimension of the coordinate field that is returned (X%dim) is in most cases chosen to be the same as
the topological dimension. Only with the /geometry/spherical_earth option this is always 3 so that a 2d spherical
horizontal mesh (to be extruded inside fluidity) can be read. This was broken before. The other codes that use
embedded meshes (shallow water) use a specific option that only works for triangle, so that functionality should
remain unchanged.
- remove identify_gmsh_files()
- because of this remove identify_mesh_files() from the mesh_files module
- in all subroutines of the mesh_files module make format a required argument. Before, if the argument was not present
a "guess" would be made. In some tools where no option tree is present (e.g. test_laplacian) this would always default
to "triangle". These therefore now directly call read_triangle_files. In all other cases the format should be worked
out. For output this can be a bit tricky. For checkpointing the same logic is followed as before (look at the option
under the external mesh). For adaptivity debugging meshes it now always uses gmsh.
- identify_mesh_files() was only used in populate_state, in the case of inactive process (flredecomp from less
to more processes), where inactive processed needed to know the dimensions of the mesh. This is now communicated
via a MPI_Scatter()

3988. By Jon Hill

Minor change to fldecomp to get fldecomp to compile on HECToR. Almost got a fully working build...

3989. By Stephan Kramer

Fixing changed dependencies ('make makefiles') since my gmsh commit.

3990. By Stephan Kramer

This adds the -fno-realloc-lhs flag to FCFLAGS and FFLAGS during configure, when using a gfortran that accepts it. This is a work-around for memory leaks caused by gfortran >=4.6, see

3991. By Jon Hill

Adding the SVG Fluidity logo to the repository. Same license as the rest of Fluidity

3992. By Brendan Tollit

Add back two multimaterial test cases that are set up to test p1dgp2, with checks for volume fractions and velocity divergence.

These were removed because of a memory leak caused by gfortran which now has a fix in the trunk thanks to Sam and Stephan.

3993. By Jon Hill

Adding ability to run psuedo-1D columns in parallel by decmping in the vertical. Note that the user must supply the DistanceToTop and Bottom fields of they want them

3994. By Jon Hill

Removing warnings from FLML

3995. By Florian Rathgeber

Fix the with_zoltan=no configure option, which was without effect

3996. By Cian Wilson

Bug fix for intel compilers that now object to converting null pointers into objects in subroutine calls. Specifically in this case the ct_m divergence matrix.

3997. By Lawrence Mitchell

Further reduce recompilations in already built trees

include/version.h is now built with a new script bin/version-info.
Makefiles are updated to take advantage of this, and reworked such
that include/version.h is no longer a .PHONY target.

Version is determined in the following ways (in order of preference):

  - make PACKAGE_VERSION=foo
  - ./configure FLUIDITY_VERSION=foo
  - bzr version-info

Additionally, to avoid spurious rebuilds due to
Diagnostic_Fields_New.F90 changing, only overwrite it if the hash of
the existing version differs from the hash of the putative new

3998. By Tim Greaves

One-line fix in build system only; the packager was giving unwanted
leading-path entries in the examples tarball, which this commit addresses.

3999. By Alexandros Avdis

Correction of errors affected by an earlier commit - Sould have been experimenting on unbound branch.

4000. By Jon Hill

Bug fix to period_averaged_scalar field diagnostic to work with adaptivity

4001. By Tim Greaves

Change in test tolerance only to relax for 32-bit Precise test platform.

4002. By Stephan Kramer

Loosing tolerance: maximum fs may occur one timestep later. Also corrected fs_right_max test.

4003. By Tim Greaves

Changes in documentation only: Updating manual to recent versions of the
supporting software documentation, drawn from the AMCG Wiki at:

4004. By Samuel Parkinson

merge LES_fix branch into trunk into trunk - fixes bug #1000813

4005. By Tim Greaves

Commit purely in build system, adding a fluidity binary package dependency
on libspud-dev

4006. By Brendan Tollit

Add the capability to associate any scalar field with the perturbation density for a
fluids linear EoS to complement the Temperature and Salinity components. This is an
added generalisation of the coding and is useful for collapsed multiphase models
involving bubbles, perhaps other applications also.

The options for EoS are added to their own .rnc/g file and new options added.

The manual is slightly changed to include a description of the new functionality.

A test case is added which copies the case buoyancy_adjustment_dg_two_element and
uses a generic scalar field for the EoS rather than Temperature - gets the same
answer as expected.

4007. By Alexandros Avdis

Removed some hard coded instances of the Earth radius. The Earth geoid surface radius is now calculated from the mesh.

4008. By Simon Funke

Loosening the tolerance for the shallow_water_adjoint_default_controls_2d will hopefully make buildbot happy

4009. By Stephan Kramer

Change assert for descending node order with 1d adaptivity, to a check that is also run without debugging and add a helpful error message.

The descending node order for 1d adaptivity is a bit silly, that could easily be fixed if somebody's up for it.

4010. By Stephan Kramer

Fixing a few issues with cdisk_2d:
* the test advects a tracer under a prescribed velocity field. The velocity field however does not satisfy no-normal flow at the boundary, so boundary conditions for the tracer are needed.
* only testing for something that is also satisfied by the initial condition is never a good idea. Next to conservation, we now also test the tracer has moved by the right amount.
* adding a 'solvers converged' check pending a more general solution for this.

4011. By Lawrence Mitchell

Add checks for solver convergence to most tests

Tests that run fluidity in a meaningful manner should always test for
convergence of the solvers. This merge attempts to do that for most
short and mediumtests.

4012. By Jon Hill

Fix bug in libspud's python interface. Same fix has been applied in libspud trunk also

4013. By Lawrence Mitchell

Make petsc libs come before system libs in link line

When we discover a set of library flags in configure, we should
prepend, not append to LIBS. The linker looks at library paths in L2R
order on the command line, so the more specific the path we discover,
the closer to the front of the command line it should be.

4014. By Tim Greaves

Changes purely in tests reassigning tests from hhiester to new owners.

4015. By Gerard

bugfix: FCFLAGS was being clobbered with non-existent OLD_FCLAGS

4016. By Tim Greaves

Changes purely in example XMLs: changing length to 'long' in all tests to
  allow them to successfully run as 'longtests' in buildbot.

4017. By Tim Greaves

Small change in the makefile of this example to bring the default
 'make input' called by the testing process in line with the rest
 of the example running on 32 cores.

4018. By Tim Greaves

Change purely in build infrastructure of an example: for automated running of
  the BFS3D example, a default NPROCS=8 is supplied.

4019. By Brendan Tollit

Add the capability for robin BC for control_volume discretisation
(not coupled_cv) only if the diffusion term uses ElementGradient.

Add a simple analytic test case that need only be 1d as the added
code is independent of dimension.

Adjust comments in the schema for this.

Add small sections to the manual.

4020. By Rhodri Davies

Bug fix for cases using P2CV and limit theta. Supplied by Cian.

4021. By Jon Hill

New GLS updates which include:
 - Ocean parameterisation which parameterises internal wave breaking, adding some surface TKE into deeper water
 - Updates to assembly routines which are now mostly element-wise
 - Updates to tests
 - Manual updates

4022. By Jon Hill

Adding tests for PAR and updating manual

4023. By Rhodri Davies

Bug fix for CV, when a diffusion term is present. Again supplied by Cian.

4024. By Christian Jacobs

Merging compressible-multiphase branch revisions r3955 to r4067 (inclusive) into trunk.

Summary of changes:

- Added multiphase support for the compressible projection method (currently only for CG Pressure).

- Small changes to the logic in Momentum_Equation.F90. Replaced the use_compressible_projection logical with compressible_eos which is .true. if option_count("/material_phase/equation_of_state/compressible") > 0, and .false. otherwise.

- Added multiphase support for the InternalEnergy equation. Note that the whole state array is now passed to solve_field_equation_cg.

- Implemented the heat transfer term by Gunn (1978).

- Added three P2-P1 multiphase MMS tests for model verification: one without InternalEnergy fields, one with InternalEnergy fields, and one with InternalEnergy fields and heat transfer. The tests will become longtests after merging into the trunk.

- The manual now has documentation on the compressible multiphase model, including the multiphase version of the InternalEnergy equation.

- Added a diagnostic field called CompressibleContinuityResidual which computes the residual of the compressible multiphase continuity equation. This is similar to the SumVelocityDivergence field for incompressible multiphase flow which computes \sum{div(vfrac*u)}.

- Added two gas-solid shock tube tests to help to validate the model: mphase_rogue_shock_tube_dense_bed_glass and mphase_rogue_shock_tube_dense_bed_nylon.

- Added another gas-solid shock tube test (mphase_dusty_gas_shock_tube) which uses the setup by Miura & Glass (1982).

- Implemented two new correlations for fluid-particle drag. The one by Wen & Yu (1966) can support higher Reynolds numbers (compared to the existing Stokes' law correlation). The one by Ergun (1952) can support dense flows where the volume fraction of the particle phase is greater than 0.2, like in the dense bed shock tube tests (and in the pyroclastic flow tests which will hopefully come later).

- Changed the structure of the schema. Users now explicitly select which interaction terms they wish to include, as well as the drag correlation, under "/multiphase_interaction" in Diamond. These options are stored in the new files multiphase_interaction.rnc and multiphase_interaction.rng.

- Added a test for the Wen & Yu (1966) drag correlation. This is similar to mphase_stokes_law.

- Added a test to check if inlet velocity boundary conditions work with the incompressible multiphase flow model.

- Added a test for the flux boundary condition.

4025. By Christian Jacobs

Moved the compressible multiphase MMS tests to the longtests directory.

4026. By Christian Jacobs

- Updated the tephra_settling example's .flml file to use the new multiphase_interaction schema structure.
- Corrected a small typo in the manual.

4027. By Lawrence Mitchell

Fix DG momentum assembly corner case

Since r3984 we would assemble elements in DG momentum if
element_neighbour_owned returned true. However, for some corner cases
element_neighbour_owned need not return true if the element is owned
(consider the case of a process with one owned element). In this
situation we would not correctly assemble all elements. To fix this,
change the test for element assembly to directly check for element

At the same time, update the documentation for element_neighbour_owned
to note this issue.

4028. By Rhodri Davies

Merge relax_halo_verifies branch into trunk. Thanks to dham for review.

4029. By j-bull08 <email address hidden>

Removing duplicate file in 3D BFS example.

4030. By Lawrence Mitchell

Fix CG momentum assembly on intel fortran

This only affects the have_les and .not. dynamic_les code path.

4031. By Rhodri Davies

Merge zoltan configure check for .mod files into trunk. Thanks to steph for help and jon for review.

4032. By Christian Jacobs

Added solvers_converged pass_tests to all multiphase tests.

4033. By Christian Jacobs

Added a solvers_converged pass_test to the tephra_settling example.

4034. By Samuel Parkinson

Updated Momentum_CG.F90 so that upwind stabilisation can be used with partial or full stress form. The issue is that when using partial or full stress form we tend to set all components of viscosity to the same value. This makes the tensor determinant zero and we cannot invert it. This fix simply sets all non-diagonal terms to zero for the purpose of handling stabilisation when using partial or full stress forms. This isn't ideal as it ignores the fact that we may have non-isotropic viscosities, but these aren't handled properly for these stress forms anyway - so this is a bigger issue that may need fixing later.

The same issue arises when we try to calculate the GridReynoldsNumber diagnostic field and the same fix has been applied here.

4035. By Samuel Parkinson

bug fix of SUPG stabilisation in Momentum_CG.F90

4036. By Tim Greaves

One-line fix, setting the correct flml filename in the test xml.

4037. By Adam Candy

Removal of a runtime-generated test file.
jhill - please check!

4038. By Samuel Parkinson

Added options for how the bed shear stress is calculated. Yuo can now either:
- use drag formulation as before
- calculate the shear stress based upon the gradient of the velocity field at the bed
- use the shear stress estimate generated by the wall boundary layer boundary condition algorithm

4039. By Samuel Parkinson

change to lock_exchange example so that, when run as a test, it runs to 30 seconds so that the tests are checked properly

4040. By Christian Jacobs

Merging compressible-multiphase branch revisions r4068 to r4077 (inclusive) into trunk.

Summary of changes:

- Added multiphase support for stress_form, partial_stress_form and isotropic diagonal_viscosity in Momentum_CG.F90. The stress_form will be important in compressible multiphase flow simulations.

- Added an MMS test (mphase_mms_p2p1_stress_form) for the stress_form changes.

4041. By Christian Jacobs

Small edit to the manual to generalise the form of the multiphase stress term.

4042. By Xiaohu Guo

  1. thread matrix assembly part for Advection_Diffusion_DG.F90
  2. MASSLUMPED_RT0 diffusion scheme is not supported, simply set threads back to 1 if MASSLUMPED_RT0 diffusion scheme is being used, and there will be a warning message.
  3. thread matrix assembly part for Advection_Diffusion_FV.F90

4043. By Christian Jacobs

Merging k_epsilon_extend_and_fix branch into trunk.

Changes to k-epsilon model:
- The code no longer lumps the mass matrix when calculating source terms for the k and epsilon fields, allowing element pairs other than P1-P1 to be used.
- k-epsilon field calculation moved to the beginning of the time-step and calculated with all other diagnostic fields.
- Added source term to momentum equation (-2/3 grad(rho*k)).
- Updated the manual documentation for the k-epsilon model.
- Users must now use partial-stress or full-stress form for the stress term in the momentum equation. This is the correct formulation when using spatially
varying viscosities. The ScalarEddyViscosity from the model is added to all components of the stress tensor to reflect this.
- Fixed calculation of c_eps_3.
- Added lots of debugging options.
- Improved the options_check subroutine.
- Changed how prescribed source terms are implemented for the k and epsilon fields so that multiple non-linear iterations can be carried out
with prescribed source terms.
- Altered calculation of Reynolds Stresses.
- Added a new equation_type (KEpsilon) for the k-epsilon equation. This includes the density in the advection-diffusion equation for the k and epsilon fields. Also made many other changes to the code to take account of density variations. Supports CG and CV discretisations.
- Made a few preliminary steps for adding multiphase support to the k-epsilon model.
- k and epsilon fields are now clipped at Gauss points rather than nodes.
- Moved element assembly to its own subroutine to avoid dynamic memory assignment.
- Changed k and epsilon diffusivity tensor to (nu + nu_t/sigma_*) instead of (nu_t/sigma_*)
- The turbulent buoyancy term is now calculated from the VelocityBuoyancyDensity rather than a summation of scalar fields that have been identified as
being buoyant. This means that any buoyant field will automatically result in a buoyancy term in the k-epsilon model (unless the entire term
is disabled in debugging_options)
- Removed several unused variables.
- Added the buoyancy term to the k-epsilon model.
- Added damping functions for the low_Re k-epsilon model.
- Changed epsilon low_Re boundary condition to d(eps)/dx = 0 as it's simpler than what we had before and still valid (Wilcox 1998).
- Fixes to high-Re boundary conditions.
- Removed length scale limiting.

Changes to tests and examples:
- The existing k-epsilon MMS test (k-epsilon_mms_cg_p1p1) has been removed and replaced with one that uses a P2-P1 discretisation and runs to steady state.
- Three additional tests have been added for the low_Re boundary condition, and the LinearMomentum Velocity equation_type with CG and CV discretisations.
- Tests include the turbulent buoyancy term and scalar field turbulent diffusion.
- A unit test has been added for the tensor_inner_product function.
- Fixed the backward facing step 2D example based on the changes to the k-epsilon model.

4044. By Christian Jacobs

Moved tests/mms_rans_p2p1_keps_linearmomentum and tests/mms_rans_p2p1_keps_linearmomentum_cv to the longtests directory.

4045. By Christian Jacobs

Buildbot's makefiles-x86_64 queue has been failing since r4042. These updates from make makefiles will hopefully fix this.

4046. By Adam Candy

Wetting and Drying bug fix - the material phase had an assumed name of 'water'.
(It is now just assumed to be the first material phase)

4047. By Christian Jacobs

Bug fix following the merge of k_epsilon_extend_and_fix. k-epsilon boundary conditions are now applied to all states that have k-epsilon enabled, not just to state(1).

4048. By Tim Greaves

As discussed in today's Fluidity developer meeting, changing this example to
default to using 64 cores to reduce runtimes for automated testing.

4049. By Rhodri Davies

Merge python_state_csr_matrices branch into trunk. Thanks to Stephan and Cian for help and to Patrick for review.

4050. By Florian Rathgeber

Purge empty directories from the repository and create them as needed.

There are a few empty directories in the repository, which bzr tracks,
other DVCs do not (git, hg). Instead of relying on those directories
being present, these are created by the respective Makefiles.

4051. By Adam Candy

Bug fix for the buoyancy adjustment by vertical mixing scheme.
The Galerkin projection to a continuous space is now honoured.

4052. By Adam Candy

Compatibility fix for a newer Gmsh version - for the buoyancy adjustment test cases.

4053. By Adam Candy

Tagging of the buoyancy adjustment test cases.

4054. By Samuel Parkinson

- added new reentrainment boundary condition based on Garcia's paper from 1991 which is the most generally used relationship.
- added hindered settling and sediment concentration dependent viscosity.
- changed how sediment fields are initialised so that they fit more generally with how other fields work in Fluidity.
- manual updates.
- new mms test for all sediment related code.

4055. By Rhodri Davies

Merge field weighted partition branch into trunk. As usual, thanks to Stephan for help and advice. Thanks to Jon for review.

4056. By Alexandros Avdis

Merge-in of DG_Neumann branch.

4057. By Tim Greaves

A commit which should be entirely limited to the build system within the tests
hierarchy and the 'clean' subsystem, attempting to catch up with housekeeping
and ensuring that 'make distclean' from the fluidity base directory reverts any
changes made by the build and testing process.

Major changes here relate to adding/correcting 'make clean' entries, and moving
some tests from copying/changing committed .bml/.oml/.swml files to copying
templates and then modifying the copies.

4058. By Mark Goffin <email address hidden>

This commit fixes local edge numbering for quad elements.

4059. By Tim Greaves

Having added in a clean-up line for the generated 'version-info' file, it
appears that tools/Makefile requires version-info to exist for the
install-version-info target, but doesn't know how to make it itself.

For the moment, I've backed out the cleaning line and will leave this for a
more comprehensive fix.

4060. By Tim Greaves

Thanks to Lawrence for spotting this; my error in r4057 was removing
tools/version-info with 'make clean' whereas it should only be removed
with 'make distclean'. This commit fixes that, adding a 'distclean' target
to the tools makefile to handle removal of version-info.

4061. By Adam Candy

Introduces a diagnostic for the buoyancy adjustment by vertical mixing scheme.
Logging for the scheme has been tightened up and generally improved.

4062. By Mark Goffin <email address hidden>

This should fix the tests hh_bdfm1 and hybridized_helmholtz that broke after revision 4058.

4063. By Mark Goffin <email address hidden>

A minor fix for degree zero quad elements to fix the test - Stokes_mms_q1p0.

4064. By Samuel Parkinson

Hopefully these updates will mean that the make makfiles test passes

4065. By Adam Candy

New option in gmsh2triangle to interpret a 3d input mesh as a 2d mesh on a spherical shell.
This avoids having to apply sed to the node file.

An improvement would be to have Fluidity detect this independent of the dimension in the node file.
(as it does with the binary gmsh format?)

4066. By Adam Candy

Restrict which pylab functions are loaded in the the radial scale tool.

4067. By Adam Candy

radial scale tool - no need for pylab dependencies, available in math.

4068. By Simon Mouradian

Updates to the manual for changes to gmsh2triangle

4069. By Adam Candy

Bug fix to buoyancy adjustment diagnostic.

4070. By Adam Candy

Additional documentation and optimisation for the buoyancy adjustment diffusion diagnostic.

4071. By Adam Candy

Optimisation in the previous commit requires this set operation.

4072. By Simon Mouradian

Fix for rotating channel example

4073. By Simon Mouradian

If dev version of libadjoint is installed, the configure script is now smart enough to realise and fluidity is built without adjoint support.

4074. By Matthew Piggott

Update the adaptive driven cavity test flml so it is (more) consistent with the fixed mesh driven cavity example.

4075. By Rhodri Davies

Stokes example and place holder in manual.

4076. By Samuel Parkinson

Tidied up time discretisation of the k-epsilon model and some other bits. See the manual edits for details on this. The main changes to the code are:

- Calculation of keps diagnostic now done twice during each non-linear iteration. First before advection diffusion of scalar fields, then again before the momentum solve. This makes it possible to have a consistent time-discretisation across the equations.
- Non-linear velocities are used in diagnostics and k and epsilon values are averaged between the most recent value and the value at the end of the last time step using a user defined theta value
- changes to how the isotropic Reynolds stresses are calculated. They are now absorbed in to the modified pressure.
- rewritten low-reynolds model which was wrong before

4077. By Matthew Piggott

Example failing with a GMYBAD error. Fiddle with adaptivity and zoltan options based on the TEST version of this flml file.

4078. By Matthew Piggott

Update the title of the streamfunction diagnostic in the pass chacks.

4079. By Rhodri Davies

Merge in changes to scaled pressure mass matrix assembly.

4080. By Christian Jacobs

Small bug fix. Removed the requirement to have a VelocitySource field when using the k-epsilon model. The field was previously needed to add in -(2/3)*rho*k, but this is now part of the pressure term.

4081. By Rhodri Davies

Merge Full Projection fix into trunk. Thanks to Stephan for review.

4082. By Michael Lange

Adding PETSs 3.3 support and dropping support for 3.0.

4083. By Rhodri Davies

XML for stokes example. Should be good to go.

4084. By Matthew Piggott

Fix my diamond validation error.

4085. By Rhodri Davies

Commit mesh files for debugging purposes only.

4086. By Rhodri Davies

Change mesh format to triangle. This should fix test.

4087. By Christian Jacobs

The use of pylab.grid("True") in causes errors when a user tries to "make postprocess". Changing this to pylab.grid('on') seems to fix the problem. Thanks to Liping for reporting this problem.

4088. By Matthew Piggott

Weaken warn tolerances a little.

4089. By Matthew Piggott

Weaken one, but strengthen the other pass test tolerances on this - most quantities comfortably converging at second order but going from 64 squared to 128 squared the erturk_v error convergence rate is only 1.4

4090. By Lawrence Mitchell

Add --from-file option to testharness

`testharness --from-file=foo' tells testharness to read the list of
tests to run from `foo' (one per line). Useful for debugging failures
in a small number of related tests.

Unmerged revisions

Preview Diff