Git Product home page Git Product logo

adapt_utils's Introduction

Mesh Adaptation and Adjoint Methods for Coastal Ocean Modelling in Firedrake

In this code, adjoint methods and mesh adaptation are applied to solving a variety of 2D coastal ocean modelling problems using the coastal, estuarine and ocean modelling solvers provided by Thetis. Thetis is built upon the Firedrake project, which enables the efficient solution of FEM problems in Python by automatic generation of PETSc code.

Currently supported model components:

  • Shallow water equations (i.e. depth-averaged hydrodynamics);
  • Passive tracer transport (both non-conservative and conservative options available);
  • Sediment transport;
  • Exner equation.

Anisotropic mesh adaptation based on Riemannian metric fields is achieved using PRAgMaTIc. This code provides a wide range of utilities for metric-based adaptation, including Hessian recovery, metric combination, Lp normalisation and (isotropic and anisotropic) goal-oriented error estimators and metrics. Monitor-based r-adaptation methods based on solutions of Monge-Ampere type equations is also supported, as well as limited Lagrangian FEM functionality.

Continuous adjoint solvers are provided for shallow water and advection-diffusion problems. The discrete adjoint code dolfin-adjoint can also be used to generate adjoint solutions for more general problems.

This is research of the Applied Modelling and Computation Group (AMCG) at Imperial College London.

Publications

Listed below are publications which use adapt_utils, along with the corresponding code versions and the test cases considered in those works. BibTeX formatted references are also available in docs/publications.bib. The specific versions of Firedrake and Thetis used for each publication are also shown below and can be downloaded from the corresponding links. To install a specific version of Firedrake, please follow the instructions here.

  • J. G. Wallwork, N. Barral, D. A. Ham, M. D. Piggott, 'Anisotropic Goal-Oriented Mesh Adaptation in Firedrake', In: 28th International Meshing Roundtable, pp.83-100, (2020).

    • Paper: DOI.
    • Code:
      • adapt_utils: DOI (v1.0).
      • Firedrake: DOI.
    • Test cases:
      • steady/test_cases/point_discharge2d (Section 5.3);
      • steady/test_cases/point_discharge3d (Section 5.4).
  • J. G. Wallwork, N. Barral, S. C. Kramer, D. A. Ham, M. D. Piggott, 'Goal-Oriented Error Estimation and Mesh Adaptation for Shallow Water Modelling', Springer Nature Applied Sciences, volume 2, pp.1053--1063 (2020).

    • Paper: DOI: 10.1007/s42452-020-2745-9.
    • Code:
      • adapt_utils: DOI (v1.3).
      • Firedrake: DOI.
      • Thetis: DOI.
    • Test case:
      • steady/test_cases/turbine_array (Section 4).
  • M. C. A. Clare, J. G. Wallwork, S. C. Kramer, H. Weller, C. J. Cotter, M. D. Piggott, 'Multi-scale hydro-morphodynamic modelling using mesh movement methods', Submitted to International Journal on Geomathematics.

    • Preprint: DOI: 10.31223/osf.io/tpqvy.
    • Code:
      • adapt_utils DOI.
      • Firedrake: DOI.
      • Thetis: DOI.
    • Test cases: unsteady/test_cases/trench_1d (Section 4.1); unsteady/test_cases/trench_slant (Section 4.1); unsteady/test_cases/beach_slope (Section 4.2); unsteady/test_cases/tsunami_bump (Section 4.3). For the versions in the paper use hydro_morpho_paper branch.
  • J. G. Wallwork, N. Barral, D. A. Ham, M. D. Piggott, 'Goal-Oriented Error Estimation and Mesh Adaptation for Tracer Transport Modelling', Submitted to Computer Aided Design (2021).

    • Preprint: DOI: 10.31223/X56021.
    • Code:
      • adapt_utils: DOI (adapt_utils_20210126).
      • Firedrake: DOI.
      • Thetis: DOI.
    • Test cases: steady/test_cases/point_discharge2d (Section 4.2), steady/test_cases/point_discharge3d (Section 4.3), unsteady/test_cases/idealised_desalination (Section 5.1).
  • J. G. Wallwork, 'Mesh Adaptation and Adjoint Methods for Finite Element Coastal Ocean Modelling', PhD thesis, Imperial College London (2021).

    • Code:
      • adapt_utils: DOI (adapt_utils_20210415).
      • Firedrake: DOI.
      • Thetis: DOI.
    • Test cases:
      • test/interp (Sections 2.8 and 3.4);
      • steady/test_cases/point_discharge2d (Sections 2.7, 3.6, 7.3 and 7.5);
      • case_studies/tohoku/inversion/1d (Section 4.4);
      • case_studies/tohoku/inversion/okada (Sections 4.4 and 4.5);
      • test/adapt (Sections 5.8 and 6.4);
      • unsteady/test_cases/bubble_shear (Sections 5.8 and 6.1);
      • unsteady/test_cases/trench_1d (Section 6.5);
      • steady/test_cases/turbine_array (Sections 7.3 and 7.5);
      • steady/test_cases/idealised_desalination (Section 7.7);
      • case_studies/tohoku/hazard (Section 7.8).

User instructions

  • Clone this repository and make it accessible to the $PYTHONPATH environment variable.
  • Set the $SOFTWARE environment variable to where you would like your PETSc and Firedrake installations to exist.
  • Copy the contents of the install directory into $SOFTWARE and enter that directory.
  • Install Firedrake:
    • For an installation with Pragmatic, call source install_petsc.sh and then source install_firedrake.sh, modifying these scripts, if desired.
    • For an installation without Pragmatic, call source install_firedrake_no_adapt.sh.
    • If installing on a fresh Ubuntu OS then you will need to call source install_compilers.sh beforehand.
  • Test your installation by calling make test_all from the root directory.
  • Once you have a working Firedrake installation, get to grips with adapt_utils by looking at the test cases in steady/test_cases and unsteady/test_cases, as well as the notebooks hosted here.

For feedback, comments and questions, please email [email protected] or [email protected] (for feedback related to Clare et al.).

adapt_utils's People

Contributors

jwallwork23 avatar mc21hm avatar mc4117 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

adapt_utils's Issues

Standardise and make user-friendly

The following things would be nice:

  • Revert to a single test_cases subdirectory in the root directory
  • Put source code in a subdirectory
  • Add documentation (see joe/sphinx-docs for ongoing work)
  • Add LICENSE file

Unsteady discrete adjoint solver

Adjoint equation can be solved for SteadyProblem by building the LHS and calling solve_discrete_adjoint, which adjoins and solves the system automatically.

For UnsteadyProblem, this is not implemented. Really all that needs doing is hooking up pyadjoint with solve_discrete_adjoint.

Output sync issue

Output for UnsteadyProblem only works if the approach is fixed_mesh or dt_per_remesh and dt_per_export are equal.

Lint for beach and trench test cases

It isn't urgent, but it would be nice to fix the lint errors at some point. I find calling make lint from the root directory handy for picking out errors after making a few changes. However, it currently has quite a noisy output (see below). @mc4117 : please could you look at it when you get chance?

Checking lint...
./unsteady/test_cases/trench_slant/hydro_trench_slant.py:20:1: E302 expected 2 blank lines, found 1
./unsteady/test_cases/trench_slant/hydro_trench_slant.py:83:1: F821 undefined name 'stop'
./unsteady/test_cases/trench_slant/options.py:8:1: F401 'adapt_utils.unsteady.swe.utils.heaviside_approx' imported but unused
./unsteady/test_cases/trench_slant/options.py:10:1: F401 'matplotlib' imported but unused
./unsteady/test_cases/trench_slant/options.py:12:1: F401 'os' imported but unused
./unsteady/test_cases/trench_slant/options.py:52:62: W291 trailing whitespace
./unsteady/test_cases/trench_slant/options.py:71:49: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_slant/options.py:71:51: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_slant/options.py:78:68: W291 trailing whitespace
./unsteady/test_cases/trench_slant/options.py:93:5: E303 too many blank lines (2)
./unsteady/test_cases/trench_slant/options.py:101:13: E128 continuation line under-indented for visual indent
./unsteady/test_cases/trench_slant/options.py:102:13: E128 continuation line under-indented for visual indent
./unsteady/test_cases/trench_slant/options.py:103:29: E128 continuation line under-indented for visual indent
./unsteady/test_cases/trench_slant/options.py:103:36: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_slant/options.py:103:38: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_slant/options.py:103:59: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_slant/options.py:103:61: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_slant/options.py:104:29: E128 continuation line under-indented for visual indent
./unsteady/test_cases/trench_slant/options.py:104:40: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_slant/options.py:104:42: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_slant/options.py:104:80: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_slant/options.py:104:82: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_slant/options.py:129:25: E128 continuation line under-indented for visual indent
./unsteady/test_cases/trench_slant/options.py:131:1: W293 blank line contains whitespace
./unsteady/test_cases/trench_slant/options.py:140:9: F841 local variable 'bottom_wall_tag' is assigned to but never used
./unsteady/test_cases/trench_slant/options.py:141:9: F841 local variable 'top_wall_tag' is assigned to but never used
./unsteady/test_cases/trench_slant/options.py:147:1: W191 indentation contains tabs
./unsteady/test_cases/trench_slant/options.py:147:1: E101 indentation contains mixed spaces and tabs
./unsteady/test_cases/trench_slant/options.py:147:5: E131 continuation line unaligned for hanging indent
./unsteady/test_cases/trench_slant/options.py:177:66: E261 at least two spaces before inline comment
./unsteady/test_cases/trench_slant/options.py:187:13: F841 local variable 'b' is assigned to but never used
./unsteady/test_cases/trench_slant/options.py:188:13: F841 local variable 'wd' is assigned to but never used
./unsteady/test_cases/trench_slant/options.py:196:18: E114 indentation is not a multiple of four (comment)
./unsteady/test_cases/trench_slant/options.py:196:18: E116 unexpected indentation (comment)
./unsteady/test_cases/trench_slant/hydro_fns.py:13:1: F401 'firedrake as fire' imported but unused
./unsteady/test_cases/trench_slant/hydro_fns.py:14:1: F401 'math' imported but unused
./unsteady/test_cases/trench_slant/hydro_fns.py:15:1: F401 'os' imported but unused
./unsteady/test_cases/trench_slant/hydro_fns.py:16:1: F401 'firedrake.petsc.PETSc' imported but unused
./unsteady/test_cases/trench_slant/run_fixed_mesh.py:3:1: F401 'firedrake.petsc.PETSc' imported but unused
./unsteady/test_cases/trench_slant/run_fixed_mesh.py:6:1: F401 'numpy as np' imported but unused
./unsteady/test_cases/trench_slant/run_fixed_mesh.py:8:1: F401 'pandas as pd' imported but unused
./unsteady/test_cases/trench_slant/run_moving_mesh.py:5:1: F401 'numpy as np' imported but unused
./unsteady/test_cases/trench_slant/run_moving_mesh.py:6:1: F401 'pandas as pd' imported but unused
./unsteady/test_cases/trench_slant/run_moving_mesh.py:32:41: E221 multiple spaces before operator
./unsteady/test_cases/trench_slant/run_moving_mesh.py:56:1: E302 expected 2 blank lines, found 1
./unsteady/test_cases/trench_slant/run_moving_mesh.py:70:5: F841 local variable 'current_mesh' is assigned to but never used
./unsteady/test_cases/trench_slant/run_moving_mesh.py:79:5: E265 block comment should start with '# '
./unsteady/test_cases/trench_slant/run_moving_mesh.py:80:5: E265 block comment should start with '# '
./unsteady/test_cases/trench_slant/run_moving_mesh.py:81:5: E265 block comment should start with '# '
./unsteady/test_cases/trench_slant/run_moving_mesh.py:82:5: E265 block comment should start with '# '
./unsteady/test_cases/trench_slant/run_moving_mesh.py:86:1: E305 expected 2 blank lines after class or function definition, found 1
./unsteady/test_cases/trench_1d/options.py:8:1: F401 'adapt_utils.unsteady.swe.utils.heaviside_approx' imported but unused
./unsteady/test_cases/trench_1d/options.py:11:1: F401 'os' imported but unused
./unsteady/test_cases/trench_1d/options.py:51:62: W291 trailing whitespace
./unsteady/test_cases/trench_1d/options.py:69:9: E265 block comment should start with '# '
./unsteady/test_cases/trench_1d/options.py:71:49: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_1d/options.py:71:51: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_1d/options.py:78:68: W291 trailing whitespace
./unsteady/test_cases/trench_1d/options.py:88:9: E265 block comment should start with '# '
./unsteady/test_cases/trench_1d/options.py:93:5: E303 too many blank lines (2)
./unsteady/test_cases/trench_1d/options.py:101:13: E128 continuation line under-indented for visual indent
./unsteady/test_cases/trench_1d/options.py:102:13: E128 continuation line under-indented for visual indent
./unsteady/test_cases/trench_1d/options.py:103:29: E128 continuation line under-indented for visual indent
./unsteady/test_cases/trench_1d/options.py:103:36: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_1d/options.py:103:38: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_1d/options.py:103:59: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_1d/options.py:103:61: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_1d/options.py:104:29: E128 continuation line under-indented for visual indent
./unsteady/test_cases/trench_1d/options.py:104:40: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_1d/options.py:104:42: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_1d/options.py:104:80: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_1d/options.py:104:82: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/trench_1d/options.py:140:9: F841 local variable 'bottom_wall_tag' is assigned to but never used
./unsteady/test_cases/trench_1d/options.py:141:9: F841 local variable 'top_wall_tag' is assigned to but never used
./unsteady/test_cases/trench_1d/options.py:147:1: W191 indentation contains tabs
./unsteady/test_cases/trench_1d/options.py:147:1: E101 indentation contains mixed spaces and tabs
./unsteady/test_cases/trench_1d/options.py:147:5: E131 continuation line unaligned for hanging indent
./unsteady/test_cases/trench_1d/options.py:177:66: E261 at least two spaces before inline comment
./unsteady/test_cases/trench_1d/options.py:177:67: E262 inline comment should start with '# '
./unsteady/test_cases/trench_1d/options.py:184:9: E265 block comment should start with '# '
./unsteady/test_cases/trench_1d/options.py:187:13: F841 local variable 'b' is assigned to but never used
./unsteady/test_cases/trench_1d/options.py:188:13: F841 local variable 'wd' is assigned to but never used
./unsteady/test_cases/trench_1d/options.py:192:13: E265 block comment should start with '# '
./unsteady/test_cases/trench_1d/options.py:194:13: E265 block comment should start with '# '
./unsteady/test_cases/trench_1d/options.py:196:17: E116 unexpected indentation (comment)
./unsteady/test_cases/trench_1d/run_fixed_mesh.py:86:1: W391 blank line at end of file
./unsteady/test_cases/trench_1d/run_moving_mesh.py:52:1: E302 expected 2 blank lines, found 1
./unsteady/test_cases/trench_1d/run_moving_mesh.py:68:5: F841 local variable 'H' is assigned to but never used
./unsteady/test_cases/trench_1d/run_moving_mesh.py:69:5: F841 local variable 'tau' is assigned to but never used
./unsteady/test_cases/trench_1d/run_moving_mesh.py:70:5: F841 local variable 'n' is assigned to but never used
./unsteady/test_cases/trench_1d/run_moving_mesh.py:73:5: E265 block comment should start with '# '
./unsteady/test_cases/trench_1d/run_moving_mesh.py:74:5: E265 block comment should start with '# '
./unsteady/test_cases/trench_1d/run_moving_mesh.py:75:5: E265 block comment should start with '# '
./unsteady/test_cases/trench_1d/run_moving_mesh.py:76:5: E265 block comment should start with '# '
./unsteady/test_cases/trench_1d/run_moving_mesh.py:80:1: E305 expected 2 blank lines after class or function definition, found 1
./unsteady/test_cases/trench_1d/run_moving_mesh.py:128:1: E265 block comment should start with '# '
./unsteady/test_cases/trench_1d/run_moving_mesh.py:129:1: E265 block comment should start with '# '
./unsteady/test_cases/trench_1d/run_moving_mesh.py:130:1: E265 block comment should start with '# '
./unsteady/test_cases/trench_1d/run_moving_mesh.py:131:1: E265 block comment should start with '# '
./unsteady/test_cases/trench_1d/run_moving_mesh.py:132:1: E265 block comment should start with '# '
./unsteady/test_cases/beach_slope/options.py:8:1: F401 'adapt_utils.unsteady.swe.utils.heaviside_approx' imported but unused
./unsteady/test_cases/beach_slope/options.py:10:1: F401 'datetime' imported but unused
./unsteady/test_cases/beach_slope/options.py:12:1: F401 'os' imported but unused
./unsteady/test_cases/beach_slope/options.py:13:1: F401 'time' imported but unused
./unsteady/test_cases/beach_slope/options.py:53:9: E265 block comment should start with '# '
./unsteady/test_cases/beach_slope/options.py:54:9: E265 block comment should start with '# '
./unsteady/test_cases/beach_slope/options.py:70:20: E261 at least two spaces before inline comment
./unsteady/test_cases/beach_slope/options.py:72:66: E225 missing whitespace around operator
./unsteady/test_cases/beach_slope/options.py:73:65: E225 missing whitespace around operator
./unsteady/test_cases/beach_slope/options.py:86:38: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/options.py:86:40: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/options.py:110:9: F841 local variable 'bath' is assigned to but never used
./unsteady/test_cases/beach_slope/options.py:111:55: E261 at least two spaces before inline comment
./unsteady/test_cases/beach_slope/options.py:111:56: E262 inline comment should start with '# '
./unsteady/test_cases/beach_slope/options.py:117:9: E265 block comment should start with '# '
./unsteady/test_cases/beach_slope/options.py:119:9: E265 block comment should start with '# '
./unsteady/test_cases/beach_slope/options.py:123:13: E128 continuation line under-indented for visual indent
./unsteady/test_cases/beach_slope/options.py:124:13: E128 continuation line under-indented for visual indent
./unsteady/test_cases/beach_slope/options.py:125:29: E128 continuation line under-indented for visual indent
./unsteady/test_cases/beach_slope/options.py:125:36: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/options.py:125:38: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/options.py:125:59: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/options.py:125:61: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/options.py:126:29: E128 continuation line under-indented for visual indent
./unsteady/test_cases/beach_slope/options.py:126:40: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/options.py:126:42: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/options.py:126:96: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/options.py:126:98: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/options.py:126:137: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/options.py:126:139: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/options.py:129:5: E303 too many blank lines (2)
./unsteady/test_cases/beach_slope/options.py:146:66: E225 missing whitespace around operator
./unsteady/test_cases/beach_slope/options.py:148:30: E261 at least two spaces before inline comment
./unsteady/test_cases/beach_slope/options.py:148:31: E262 inline comment should start with '# '
./unsteady/test_cases/beach_slope/options.py:150:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_slope/options.py:151:5: E303 too many blank lines (2)
./unsteady/test_cases/beach_slope/options.py:161:9: F841 local variable 'outflow_tag' is assigned to but never used
./unsteady/test_cases/beach_slope/options.py:162:9: F841 local variable 'bottom_wall_tag' is assigned to but never used
./unsteady/test_cases/beach_slope/options.py:163:9: F841 local variable 'top_wall_tag' is assigned to but never used
./unsteady/test_cases/beach_slope/options.py:168:1: W191 indentation contains tabs
./unsteady/test_cases/beach_slope/options.py:168:1: E101 indentation contains mixed spaces and tabs
./unsteady/test_cases/beach_slope/options.py:168:5: E131 continuation line unaligned for hanging indent
./unsteady/test_cases/beach_slope/options.py:171:35: W291 trailing whitespace
./unsteady/test_cases/beach_slope/options.py:217:125: W291 trailing whitespace
./unsteady/test_cases/beach_slope/options.py:233:13: F841 local variable 'b' is assigned to but never used
./unsteady/test_cases/beach_slope/options.py:234:13: F841 local variable 'wd' is assigned to but never used
./unsteady/test_cases/beach_slope/options.py:242:17: E116 unexpected indentation (comment)
./unsteady/test_cases/beach_slope/hydro_fns.py:13:1: F401 'firedrake.petsc.PETSc' imported but unused
./unsteady/test_cases/beach_slope/hydro_fns.py:14:1: F401 'math' imported but unused
./unsteady/test_cases/beach_slope/hydro_fns.py:15:1: F401 'os' imported but unused
./unsteady/test_cases/beach_slope/hydro_fns.py:18:79: E502 the backslash is redundant between brackets
./unsteady/test_cases/beach_slope/hydro_fns.py:19:78: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:19:80: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:19:87: E502 the backslash is redundant between brackets
./unsteady/test_cases/beach_slope/hydro_fns.py:20:37: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:20:39: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:20:53: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:20:55: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:20:82: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:20:84: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:20:87: E502 the backslash is redundant between brackets
./unsteady/test_cases/beach_slope/hydro_fns.py:21:32: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:21:34: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:21:51: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:21:53: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:21:80: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:21:82: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:26:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_slope/hydro_fns.py:28:80: W291 trailing whitespace
./unsteady/test_cases/beach_slope/hydro_fns.py:39:66: W291 trailing whitespace
./unsteady/test_cases/beach_slope/hydro_fns.py:41:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_slope/hydro_fns.py:49:21: E712 comparison to True should be 'if cond is True:' or 'if cond:'
./unsteady/test_cases/beach_slope/hydro_fns.py:50:72: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:50:74: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:50:87: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:50:89: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:54:41: W291 trailing whitespace
./unsteady/test_cases/beach_slope/hydro_fns.py:59:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_slope/hydro_fns.py:60:35: E712 comparison to True should be 'if cond is True:' or 'if cond:'
./unsteady/test_cases/beach_slope/hydro_fns.py:62:83: W291 trailing whitespace
./unsteady/test_cases/beach_slope/hydro_fns.py:64:57: W291 trailing whitespace
./unsteady/test_cases/beach_slope/hydro_fns.py:65:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_slope/hydro_fns.py:72:26: E225 missing whitespace around operator
./unsteady/test_cases/beach_slope/hydro_fns.py:78:37: E231 missing whitespace after ','
./unsteady/test_cases/beach_slope/hydro_fns.py:79:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_slope/hydro_fns.py:81:5: E303 too many blank lines (2)
./unsteady/test_cases/beach_slope/hydro_fns.py:99:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_slope/hydro_fns.py:100:20: W291 trailing whitespace
./unsteady/test_cases/beach_slope/hydro_fns.py:127:45: E261 at least two spaces before inline comment
./unsteady/test_cases/beach_slope/hydro_fns.py:127:46: E262 inline comment should start with '# '
./unsteady/test_cases/beach_slope/hydro_fns.py:134:138: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:134:140: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:135:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_slope/hydro_fns.py:142:24: E225 missing whitespace around operator
./unsteady/test_cases/beach_slope/hydro_fns.py:152:24: E225 missing whitespace around operator
./unsteady/test_cases/beach_slope/hydro_fns.py:155:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_slope/hydro_fns.py:157:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_slope/hydro_fns.py:159:44: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:159:46: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:159:61: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/hydro_fns.py:160:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_slope/run_fixed_mesh.py:5:1: F401 'numpy as np' imported but unused
./unsteady/test_cases/beach_slope/run_fixed_mesh.py:7:1: F401 'pandas as pd' imported but unused
./unsteady/test_cases/beach_slope/run_fixed_mesh.py:26:79: W291 trailing whitespace
./unsteady/test_cases/beach_slope/run_fixed_mesh.py:72:1: W391 blank line at end of file
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:15:1: F401 'os' imported but unused
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:22:1: E302 expected 2 blank lines, found 1
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:25:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:39:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:43:57: E225 missing whitespace around operator
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:46:58: E225 missing whitespace around operator
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:47:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:52:71: W291 trailing whitespace
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:65:1: E305 expected 2 blank lines after class or function definition, found 1
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:71:2: E231 missing whitespace after ','
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:79:2: E231 missing whitespace after ','
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:93:56: E225 missing whitespace around operator
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:95:174: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:95:176: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:95:196: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:95:198: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:95:214: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:95:216: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:95:235: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:95:237: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:95:284: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:95:286: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:95:314: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:95:316: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:95:337: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:95:339: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:99:35: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:99:37: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:103:9: E712 comparison to False should be 'if cond is False:' or 'if not cond:'
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:123:49: W291 trailing whitespace
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:127:5: E303 too many blank lines (3)
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:127:46: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:127:48: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:128:28: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:128:30: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:131:19: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/beach_tidal_hydro.py:131:21: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/run_moving_mesh_bath.py:1:1: E902 TokenError: EOF in multi-line statement
./unsteady/test_cases/beach_slope/run_moving_mesh_bath.py:63:1: E302 expected 2 blank lines, found 1
./unsteady/test_cases/beach_slope/run_moving_mesh_bath.py:63:76: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/run_moving_mesh_bath.py:63:78: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_slope/run_moving_mesh_bath.py:79:44: E225 missing whitespace around operator
./unsteady/test_cases/beach_slope/run_moving_mesh_bath.py:112:1: E305 expected 2 blank lines after class or function definition, found 1
./unsteady/test_cases/bubble_shear/run_lagrangian.py:56:1: E302 expected 2 blank lines, found 1
./unsteady/test_cases/bubble_shear/run_lagrangian.py:61:1: E305 expected 2 blank lines after class or function definition, found 1
./unsteady/test_cases/beach_wall/options.py:8:1: F401 'adapt_utils.unsteady.swe.utils.heaviside_approx' imported but unused
./unsteady/test_cases/beach_wall/options.py:10:1: F401 'datetime' imported but unused
./unsteady/test_cases/beach_wall/options.py:12:1: F401 'os' imported but unused
./unsteady/test_cases/beach_wall/options.py:13:1: F401 'time' imported but unused
./unsteady/test_cases/beach_wall/options.py:91:38: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/options.py:91:40: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/options.py:115:9: F841 local variable 'bath' is assigned to but never used
./unsteady/test_cases/beach_wall/options.py:116:54: E261 at least two spaces before inline comment
./unsteady/test_cases/beach_wall/options.py:116:55: E262 inline comment should start with '# '
./unsteady/test_cases/beach_wall/options.py:128:13: E128 continuation line under-indented for visual indent
./unsteady/test_cases/beach_wall/options.py:129:13: E128 continuation line under-indented for visual indent
./unsteady/test_cases/beach_wall/options.py:130:29: E128 continuation line under-indented for visual indent
./unsteady/test_cases/beach_wall/options.py:130:36: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/options.py:130:38: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/options.py:130:59: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/options.py:130:61: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/options.py:131:29: E128 continuation line under-indented for visual indent
./unsteady/test_cases/beach_wall/options.py:131:40: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/options.py:131:42: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/options.py:131:96: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/options.py:131:98: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/options.py:131:137: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/options.py:131:139: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/options.py:134:5: E303 too many blank lines (2)
./unsteady/test_cases/beach_wall/options.py:145:49: E261 at least two spaces before inline comment
./unsteady/test_cases/beach_wall/options.py:151:66: E225 missing whitespace around operator
./unsteady/test_cases/beach_wall/options.py:153:30: E261 at least two spaces before inline comment
./unsteady/test_cases/beach_wall/options.py:153:31: E262 inline comment should start with '# '
./unsteady/test_cases/beach_wall/options.py:155:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_wall/options.py:156:5: E303 too many blank lines (2)
./unsteady/test_cases/beach_wall/options.py:167:9: F841 local variable 'bottom_wall_tag' is assigned to but never used
./unsteady/test_cases/beach_wall/options.py:168:9: F841 local variable 'top_wall_tag' is assigned to but never used
./unsteady/test_cases/beach_wall/options.py:174:1: W191 indentation contains tabs
./unsteady/test_cases/beach_wall/options.py:174:1: E101 indentation contains mixed spaces and tabs
./unsteady/test_cases/beach_wall/options.py:174:5: E131 continuation line unaligned for hanging indent
./unsteady/test_cases/beach_wall/options.py:175:36: E231 missing whitespace after ':'
./unsteady/test_cases/beach_wall/options.py:178:35: W291 trailing whitespace
./unsteady/test_cases/beach_wall/options.py:224:125: W291 trailing whitespace
./unsteady/test_cases/beach_wall/options.py:243:13: F841 local variable 'b' is assigned to but never used
./unsteady/test_cases/beach_wall/options.py:244:13: F841 local variable 'wd' is assigned to but never used
./unsteady/test_cases/beach_wall/options.py:252:18: E114 indentation is not a multiple of four (comment)
./unsteady/test_cases/beach_wall/options.py:252:18: E116 unexpected indentation (comment)
./unsteady/test_cases/beach_wall/run_moving_next_mon.py:12:1: F401 'adapt_utils.norms.local_frobenius_norm' imported but unused
./unsteady/test_cases/beach_wall/run_moving_next_mon.py:24:12: E261 at least two spaces before inline comment
./unsteady/test_cases/beach_wall/run_moving_next_mon.py:59:1: E302 expected 2 blank lines, found 1
./unsteady/test_cases/beach_wall/run_moving_next_mon.py:59:66: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_next_mon.py:59:68: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_next_mon.py:75:48: E225 missing whitespace around operator
./unsteady/test_cases/beach_wall/run_moving_next_mon.py:93:1: E305 expected 2 blank lines after class or function definition, found 1
./unsteady/test_cases/beach_wall/run_moving_next_mon.py:115:51: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_next_mon.py:115:53: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_next_mon.py:115:95: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_next_mon.py:115:97: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_next_mon.py:115:114: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_next_mon.py:115:116: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_next_mon.py:116:40: E225 missing whitespace around operator
./unsteady/test_cases/beach_wall/run_moving_next_mon.py:116:58: E225 missing whitespace around operator
./unsteady/test_cases/beach_wall/run_moving_next_mon.py:116:108: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_next_mon.py:116:110: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:13:1: F401 'firedrake.petsc.PETSc' imported but unused
./unsteady/test_cases/beach_wall/hydro_fns.py:14:1: F401 'math' imported but unused
./unsteady/test_cases/beach_wall/hydro_fns.py:15:1: F401 'os' imported but unused
./unsteady/test_cases/beach_wall/hydro_fns.py:18:79: E502 the backslash is redundant between brackets
./unsteady/test_cases/beach_wall/hydro_fns.py:19:78: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:19:80: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:19:87: E502 the backslash is redundant between brackets
./unsteady/test_cases/beach_wall/hydro_fns.py:20:37: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:20:39: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:20:53: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:20:55: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:20:82: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:20:84: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:20:87: E502 the backslash is redundant between brackets
./unsteady/test_cases/beach_wall/hydro_fns.py:21:32: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:21:34: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:21:51: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:21:53: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:21:80: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:21:82: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:26:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_wall/hydro_fns.py:28:80: W291 trailing whitespace
./unsteady/test_cases/beach_wall/hydro_fns.py:39:66: W291 trailing whitespace
./unsteady/test_cases/beach_wall/hydro_fns.py:41:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_wall/hydro_fns.py:49:21: E712 comparison to True should be 'if cond is True:' or 'if cond:'
./unsteady/test_cases/beach_wall/hydro_fns.py:50:72: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:50:74: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:50:87: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:50:89: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:54:41: W291 trailing whitespace
./unsteady/test_cases/beach_wall/hydro_fns.py:59:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_wall/hydro_fns.py:60:35: E712 comparison to True should be 'if cond is True:' or 'if cond:'
./unsteady/test_cases/beach_wall/hydro_fns.py:62:83: W291 trailing whitespace
./unsteady/test_cases/beach_wall/hydro_fns.py:64:57: W291 trailing whitespace
./unsteady/test_cases/beach_wall/hydro_fns.py:65:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_wall/hydro_fns.py:72:26: E225 missing whitespace around operator
./unsteady/test_cases/beach_wall/hydro_fns.py:78:37: E231 missing whitespace after ','
./unsteady/test_cases/beach_wall/hydro_fns.py:79:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_wall/hydro_fns.py:81:5: E303 too many blank lines (2)
./unsteady/test_cases/beach_wall/hydro_fns.py:99:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_wall/hydro_fns.py:100:20: W291 trailing whitespace
./unsteady/test_cases/beach_wall/hydro_fns.py:127:45: E261 at least two spaces before inline comment
./unsteady/test_cases/beach_wall/hydro_fns.py:127:46: E262 inline comment should start with '# '
./unsteady/test_cases/beach_wall/hydro_fns.py:134:138: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:134:140: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:135:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_wall/hydro_fns.py:142:24: E225 missing whitespace around operator
./unsteady/test_cases/beach_wall/hydro_fns.py:152:24: E225 missing whitespace around operator
./unsteady/test_cases/beach_wall/hydro_fns.py:155:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_wall/hydro_fns.py:157:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_wall/hydro_fns.py:159:44: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:159:46: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:159:61: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/hydro_fns.py:160:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_wall/run_moving_basic.py:10:1: F401 'adapt_utils.adapt.recovery' imported but unused
./unsteady/test_cases/beach_wall/run_moving_basic.py:12:1: F401 'adapt_utils.norms.local_frobenius_norm' imported but unused
./unsteady/test_cases/beach_wall/run_moving_basic.py:12:1: F401 'adapt_utils.norms.local_norm' imported but unused
./unsteady/test_cases/beach_wall/run_moving_basic.py:24:12: E261 at least two spaces before inline comment
./unsteady/test_cases/beach_wall/run_moving_basic.py:59:1: E302 expected 2 blank lines, found 1
./unsteady/test_cases/beach_wall/run_moving_basic.py:59:66: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_basic.py:59:68: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_basic.py:64:5: W191 indentation contains tabs
./unsteady/test_cases/beach_wall/run_moving_basic.py:64:5: E101 indentation contains mixed spaces and tabs
./unsteady/test_cases/beach_wall/run_moving_basic.py:71:1: E305 expected 2 blank lines after class or function definition, found 1
./unsteady/test_cases/beach_wall/run_moving_basic.py:93:51: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_basic.py:93:53: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_basic.py:93:95: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_basic.py:93:97: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_basic.py:93:114: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_basic.py:93:116: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_basic.py:94:40: E225 missing whitespace around operator
./unsteady/test_cases/beach_wall/run_moving_basic.py:94:58: E225 missing whitespace around operator
./unsteady/test_cases/beach_wall/run_moving_basic.py:94:108: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_basic.py:94:110: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_fixed_mesh.py:5:1: F401 'numpy as np' imported but unused
./unsteady/test_cases/beach_wall/run_fixed_mesh.py:7:1: F401 'pandas as pd' imported but unused
./unsteady/test_cases/beach_wall/run_fixed_mesh.py:10:1: F401 'adapt_utils.io.export_bathymetry' imported but unused
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:12:1: F401 'os' imported but unused
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:19:1: E302 expected 2 blank lines, found 1
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:22:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:33:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:34:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:35:5: E303 too many blank lines (2)
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:37:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:41:57: E225 missing whitespace around operator
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:44:58: E225 missing whitespace around operator
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:45:1: W293 blank line contains whitespace
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:50:71: W291 trailing whitespace
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:63:1: E305 expected 2 blank lines after class or function definition, found 1
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:69:2: E231 missing whitespace after ','
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:77:2: E231 missing whitespace after ','
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:91:56: E225 missing whitespace around operator
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:93:174: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:93:176: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:93:197: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:93:199: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:93:215: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:93:217: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:93:236: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:93:238: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:93:285: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:93:287: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:93:315: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:93:317: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:93:338: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:93:340: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:97:35: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:97:37: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:101:9: E712 comparison to False should be 'if cond is False:' or 'if not cond:'
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:121:49: W291 trailing whitespace
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:125:5: E303 too many blank lines (3)
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:125:46: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:125:48: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:126:28: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:126:30: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:129:19: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/beach_tidal_hydro.py:129:21: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_mesh_bath.py:68:1: E302 expected 2 blank lines, found 1
./unsteady/test_cases/beach_wall/run_moving_mesh_bath.py:68:76: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_mesh_bath.py:68:78: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_mesh_bath.py:82:44: E225 missing whitespace around operator
./unsteady/test_cases/beach_wall/run_moving_mesh_bath.py:87:5: F841 local variable 'current_mesh' is assigned to but never used
./unsteady/test_cases/beach_wall/run_moving_mesh_bath.py:88:5: F841 local variable 'bath_grad2' is assigned to but never used
./unsteady/test_cases/beach_wall/run_moving_mesh_bath.py:115:1: E305 expected 2 blank lines after class or function definition, found 1
./unsteady/test_cases/beach_wall/run_moving_mesh_bath.py:142:51: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_mesh_bath.py:142:53: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_mesh_bath.py:142:95: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_mesh_bath.py:142:97: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_mesh_bath.py:142:114: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_mesh_bath.py:142:116: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_mesh_bath.py:143:40: E225 missing whitespace around operator
./unsteady/test_cases/beach_wall/run_moving_mesh_bath.py:143:58: E225 missing whitespace around operator
./unsteady/test_cases/beach_wall/run_moving_mesh_bath.py:143:108: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/beach_wall/run_moving_mesh_bath.py:143:110: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:2:1: F401 'firedrake as fire' imported but unused
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:11:1: F401 'adapt_utils.io.initialise_bathymetry' imported but unused
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:12:1: F401 'adapt_utils.norms.local_frobenius_norm' imported but unused
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:24:12: E261 at least two spaces before inline comment
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:24:13: E262 inline comment should start with '# '
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:50:1: E302 expected 2 blank lines, found 1
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:50:66: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:50:68: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:56:5: E265 block comment should start with '# '
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:67:48: E225 missing whitespace around operator
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:85:1: E305 expected 2 blank lines after class or function definition, found 1
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:107:51: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:107:53: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:107:95: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:107:97: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:107:114: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:107:116: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:108:53: E225 missing whitespace around operator
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:108:71: E225 missing whitespace around operator
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:108:121: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_next_mon.py:108:123: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_basic.py:2:1: F401 'firedrake as fire' imported but unused
./unsteady/test_cases/pulse_wave/run_moving_basic.py:5:1: F401 'numpy as np' imported but unused
./unsteady/test_cases/pulse_wave/run_moving_basic.py:6:1: F401 'pandas as pd' imported but unused
./unsteady/test_cases/pulse_wave/run_moving_basic.py:9:1: F401 'adapt_utils.adapt.recovery' imported but unused
./unsteady/test_cases/pulse_wave/run_moving_basic.py:10:1: F401 'adapt_utils.io.initialise_bathymetry' imported but unused
./unsteady/test_cases/pulse_wave/run_moving_basic.py:11:1: F401 'adapt_utils.norms.local_frobenius_norm' imported but unused
./unsteady/test_cases/pulse_wave/run_moving_basic.py:11:1: F401 'adapt_utils.norms.local_norm' imported but unused
./unsteady/test_cases/pulse_wave/run_moving_basic.py:49:1: E302 expected 2 blank lines, found 1
./unsteady/test_cases/pulse_wave/run_moving_basic.py:49:66: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_basic.py:49:68: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_basic.py:54:5: W191 indentation contains tabs
./unsteady/test_cases/pulse_wave/run_moving_basic.py:54:5: E101 indentation contains mixed spaces and tabs
./unsteady/test_cases/pulse_wave/run_moving_basic.py:61:1: E305 expected 2 blank lines after class or function definition, found 1
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:55:1: E302 expected 2 blank lines, found 1
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:55:76: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:55:78: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:71:44: E225 missing whitespace around operator
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:76:5: F841 local variable 'current_mesh' is assigned to but never used
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:77:5: F841 local variable 'bath_grad2' is assigned to but never used
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:81:5: E265 block comment should start with '# '
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:93:5: E265 block comment should start with '# '
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:94:5: E265 block comment should start with '# '
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:96:5: E265 block comment should start with '# '
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:98:5: E265 block comment should start with '# '
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:99:5: E265 block comment should start with '# '
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:100:5: E265 block comment should start with '# '
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:104:1: E305 expected 2 blank lines after class or function definition, found 1
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:131:51: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:131:53: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:131:95: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:131:97: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:131:114: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:131:116: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:132:40: E225 missing whitespace around operator
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:132:58: E225 missing whitespace around operator
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:132:108: E251 unexpected spaces around keyword / parameter equals
./unsteady/test_cases/pulse_wave/run_moving_mesh_bath.py:132:110: E251 unexpected spaces around keyword / parameter equals
makefile:4: recipe for target 'lint' failed
make: *** [lint] Error 1

Closer integration with Thetis

Whilst adapt_utils uses the Thetis solver structure and inherits much of the machinery, it can easily get out of date. For example, the recent change in SIPG formulation means that they are not synchronised. To fix this, we should tie adapt_utils more closely to Thetis. For example, Options could be a subclass of Thetis' 2d options class.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.