Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upload CISM as docs page #195

Merged
merged 31 commits into from
Feb 3, 2024
Merged

Upload CISM as docs page #195

merged 31 commits into from
Feb 3, 2024

Conversation

lukem12345
Copy link
Member

@lukem12345 lukem12345 commented Jan 31, 2024

Benchmarks were successfully run between the Community Ice Sheet Model (CISM) version of the Halfar dome problem, and that of Decapodes. It was exported as an HTML file and uploaded here: cise.ufl.edu/~luke.morris/cism.html

We should convert this benchmark into a docs page for all the usual reasons.

  • Upload initial notebook
  • Upload embedded images
  • Verify results are consistent with running the notebook locally

Close #194

@lukem12345 lukem12345 self-assigned this Jan 31, 2024
@lukem12345 lukem12345 added the documentation Improvements or additions to documentation label Jan 31, 2024
@lukem12345 lukem12345 changed the title Initial upload of CISM notebook. Need to convert to .md format and ve… Upload CISM as docs page Jan 31, 2024
GeorgeR227 and others added 5 commits February 2, 2024 10:56
* General wedge improvements

Added Wedge between primal 1s. Also optimized computations for wedge products using for loops.

* Further improvements to wedge

Added specialized 0-1 primal wedge and optimized preallocations for 1-1 primal wedge.

* Moved DEC into operators.jl

* Added support for Lie Derivative and Inner Product

* Fixed type_inference

It should now work with the new Lie Derivative and Interior Product.

* Changed inv_hodge

Instead of computing a large matrix inverse, inv_hodge_star for dual1 is now computed by backslash operator.

* Fixed wedge product

Wedge now returns Vector and not Offset array, which impacted matrix multiplication performance.

* Added substitutions for 2D Lie and InterProd

These substitutions should ultimately remove the need for dedicated functions to compute those operators. Also added experimental functions to have decapodes generate d0 and d1.

* Improved d2 operator

Also added SparseArrays as dependency

* Added 1D Lie and Interior Sub Rules

Got rid of the generate function equivalents.

* Added improved lapace deRham

New implementation uses the decapodes version of the exterior derivative.

* Further improved wedge

Also added a hodge_diag implementation.

* Greatly improved the performance of hodge_diag1

Woe to anyone who debugs this.

* Attempt to use indexing trick

Even though this seems to be slower, we can much more easily tell which vertices are edge centers.

* Fixed typing of hodge_diag 1

These new type annotation fix the return of ANY type before, and the new. Blessed be those who debug this.

* Added support for new hodges

We are still missing the Geometric Hodge 1 for 2D and the Diagonal Hodge 0 for 2D could use some more work.

* Added boundary and some GeoInvHdg1

The boundary implemented here is just the adjoint of the exterior derivative.

* Added support for in-place wedge

This could be further extended to work with other in-place binary operations.

* Improved Hodge_Diag 0

* Added views and more typing

Using views seems to improve performance in most cases, but not quite all. For example, views on the points/dual_points in Geo Hdg 1. Also got rid of older prototypes of hodge_diag 1.

* Further improvements to wedge

Sped up wedge02 and wedge11 preallocations and calculations greatly. Made some modifications to derivbound to remove the recompute check.

* Squashed commit of the following:

commit c204376
Author: Luke Morris <70283489+lukem12345@users.noreply.github.com>
Date:   Sun Oct 8 13:10:13 2023 -0400

    Fix diff_adv link and some poiseuille params (#150)

    * Fix diff_adv link and some poiseuille params

commit 53b23a5
Merge: abb94f8 fc8c8f8
Author: Luke Morris <70283489+lukem12345@users.noreply.github.com>
Date:   Sat Oct 7 21:33:11 2023 -0400

    Merge pull request #142 from AlgebraicJulia/llm/ascii

commit fc8c8f8
Author: Luke Morris <lukelukemorrismorris@gmail.com>
Date:   Tue Sep 5 16:19:01 2023 -0400

    Add advection Vec equivalent

commit abb94f8
Merge: 670a74e cbb91dc
Author: Luke Morris <70283489+lukem12345@users.noreply.github.com>
Date:   Fri Sep 1 19:43:07 2023 -0400

    Merge pull request #145 from AlgebraicJulia/llm/burger

    Add Burger's Equation Decapode

commit cbb91dc
Author: Luke Morris <70283489+lukem12345@users.noreply.github.com>
Date:   Fri Sep 1 17:03:06 2023 -0400

    Add Burger's Equation Decapode

commit c235acb
Author: Luke Morris <70283489+lukem12345@users.noreply.github.com>
Date:   Fri Sep 1 10:10:54 2023 -0400

    Fix comment in vec_to_dec

commit c972e5a
Author: Luke Morris <70283489+lukem12345@users.noreply.github.com>
Date:   Thu Aug 31 09:11:54 2023 -0400

    Escape backslash in ascii doc

commit be6a614
Author: Luke Morris <lukelukemorrismorris@gmail.com>
Date:   Mon Aug 28 15:49:43 2023 -0400

    Replace vector calculus operators with DEC equivalents

commit b437458
Author: Luke Morris <lukelukemorrismorris@gmail.com>
Date:   Mon Aug 28 12:55:38 2023 -0400

    Loop through incident in unicode\!

commit 7dadf60
Author: Luke Morris <lukelukemorrismorris@gmail.com>
Date:   Fri Aug 25 16:59:51 2023 -0400

    Add ASCII support for Unicode ops

    Add doc for ASCII equivalents

* Added contract operators support

* Merge branch 'main' into gr/wedge_improve

* Fixed errors caused by rebasing

* Got rid of 1D/2D dec_generate

* Added contract operator support

Also added ability to set DataType of DEC operators and added special support for inverse hodge 1

* Fixed issues with Contract Operators

The addition to contract operators to only limit contractions to a set of operators, namely DEC matrices, was modified here to fix issues.

* Added float types for Wedge

Also changed operator indices to use Int32s instead of Int64. This should be changed later to allow user to set their types, with Int32 being default.

* Added tests for 1D ops and more open_operators

Also tuned Geometric Hodge 1 since I haven't found a good way to set a type for the points arrays. Setting the type to a Vector of Point3 of Float64 brings down generation time to third of the version before this.

* Added some tests for gensim

* Added tests for operator contraction in Gensim

Also added tests for more operators and fixed inverse Geometric Hodge to be negated. Commented out wedge functions that were never being called.

* Fixed Geometric Hodge 1 tests

* Changed gitignore to match main

* Added more tests

These tests cover that the operators used by Gensim are all working properly and are well implemented. This also fixed an oversight were Geometric Inverse Hodge 1 was missing a -1.

* Tests covering some more functionality

* Loosened tolerances on operator tests

I suspect I've set them to be too strict so some variances in how the floating point calculations are done may be enough to tip it to fail.

* Removed show in operator tests

* Restored V_1 in operator tests

* Added the Benchmark file

Fixed an error occuring in the docs where the Poiseuille model was not resolving the Laplace de Rham operator due to it not being supported in the 1D case. This worked on main however due to the 2D resolving rules being the default and also covering this case.

Also added some changes to the Geo Hodge 1.

* Added Sparse/Static Arrays to compat

Also changed Benchmark to use Ico5

* Fixed CairoMake to 0.10 for Docs

Documentation seemed to make correctly at this version. They should however be updated to use the latest version.

* Squashed commit of the following:

commit 83efc30
Author: Luke Morris <70283489+lukem12345@users.noreply.github.com>
Date:   Fri Jan 19 23:31:09 2024 -0500

    Update grigoriev.md

commit 53aa53d
Author: Luke Morris <70283489+lukem12345@users.noreply.github.com>
Date:   Fri Jan 19 22:45:29 2024 -0500

    Update grigoriev.md

commit ef030ff
Author: Luke Morris <70283489+lukem12345@users.noreply.github.com>
Date:   Fri Jan 19 16:06:55 2024 -0500

    Clean readme

commit cfe25fb
Author: Luke Morris <70283489+lukem12345@users.noreply.github.com>
Date:   Fri Jan 19 14:59:05 2024 -0500

    Delete examples/poiseuille directory

commit 62806ad
Author: Luke Morris <70283489+lukem12345@users.noreply.github.com>
Date:   Fri Jan 19 14:56:46 2024 -0500

    The Klausmeier Model (#152)

    * Initial Klausmeier example

    * Remove "" from markdown links

    * Add newlines between reference bullets

    * Use raw html for figure

    * Call hide directive on Decapode table

    * Use 600 simulation time

    * using ComponentArrays with DiagEq

    * Use property accessor

commit 8e9a050
Author: Luke Morris <70283489+lukem12345@users.noreply.github.com>
Date:   Fri Jan 19 14:11:24 2024 -0500

    Remove "stable" docs temporarily

commit 4cafa46
Merge: 3395d01 f83b374
Author: quffaro <cuffaro.matt@gmail.com>
Date:   Fri Jan 12 12:47:25 2024 -0500

    Merge pull request #183 from AlgebraicJulia/migrate-diagrammatic-equations

    Migrate diagrammatic equations

commit f83b374
Author: Matt <cuffaro.matt@gmail.com>
Date:   Fri Jan 12 11:02:07 2024 -0500

    migrated test/composition.jl to DE#main

commit 7e4552e
Author: Matt Cuffaro <cuffaro.matt@gmail.com>
Date:   Thu Jan 11 14:28:37 2024 -0500

    docs build v2

commit 7163881
Author: Matt Cuffaro <cuffaro.matt@gmail.com>
Date:   Thu Jan 11 13:50:01 2024 -0500

    docs build

commit 6dda9b1
Author: Matt <cuffaro.matt@gmail.com>
Date:   Tue Jan 9 13:56:38 2024 -0500

    addressed comments

commit 22de7db
Author: Matt <cuffaro.matt@gmail.com>
Date:   Tue Jan 9 08:19:41 2024 -0500

    now reliant on DiagrammaticEquations@v0.1.0

commit 4db11fa
Author: Matt <cuffaro.matt@gmail.com>
Date:   Fri Jan 5 15:15:50 2024 -0500

    tests passing on dev copy of DiaEq

commit 41d8b9b
Merge: 57cf75e 3395d01
Author: Matt <cuffaro.matt@gmail.com>
Date:   Fri Jan 5 14:41:28 2024 -0500

    resolved merge conflicts

commit 57cf75e
Author: Matt <cuffaro.matt@gmail.com>
Date:   Tue Dec 19 16:41:24 2023 -0500

    tests pass with dev'd de.jl

commit c9f3a2c
Author: Matt Cuffaro <cuffaro.matt@gmail.com>
Date:   Tue Dec 19 13:56:51 2023 -0500

    working through tests

commit 46c615a
Author: Matt <cuffaro.matt@gmail.com>
Date:   Tue Dec 19 11:13:41 2023 -0500

    deleted files

commit fc35a87
Author: Matt Cuffaro <cuffaro.matt@gmail.com>
Date:   Mon Nov 20 14:42:01 2023 -0500

    first pass at decapodes dependencing on DEq

commit a25f9c6
Author: Luke Morris <70283489+lukem12345@users.noreply.github.com>
Date:   Fri Oct 20 10:26:18 2023 -0400

    Internalize collate and compile Collage

commit fa8130d
Author: Luke Morris <70283489+lukem12345@users.noreply.github.com>
Date:   Thu Oct 12 15:30:53 2023 -0400

    Test naming convention

commit 3fe8ca4
Author: Luke Morris <70283489+lukem12345@users.noreply.github.com>
Date:   Thu Oct 12 15:24:52 2023 -0400

    Update tangent pointers in collage

commit 7ef1c77
Author: Luke Morris <70283489+lukem12345@users.noreply.github.com>
Date:   Thu Oct 12 14:54:34 2023 -0400

    Demonstrate collage boundaries in a simulation

commit decf186
Author: Luke Morris <70283489+lukem12345@users.noreply.github.com>
Date:   Thu Oct 12 13:33:00 2023 -0400

    Use Op2 to encode boundaries

commit afe414d
Author: Luke Morris <70283489+lukem12345@users.noreply.github.com>
Date:   Mon Oct 9 12:10:20 2023 -0400

    Add restriction morphisms as Op1s

* Removed code shifted to other packages

* Delete meshes.jl include, add operators include

* Fix compat between Decapodes and CombiSpaces with @GeorgeR227

* Undo stub code deletion

---------

Co-authored-by: Luke Morris <lukelukemorrismorris@gmail.com>
* Some fixes for Decapodes Docs

Was still us SphericalMesh/Gridmeshes and packages were outdated. Add compats for various packages.

* Moved Point3D to shallow_ice
@lukem12345
Copy link
Member Author

Version 0.5.1, the FastDEC update, enabled a faster cached version of the wedge product operator in main. So instead of representing Halfar’s Equation 2 using the “averaging operation” or “averaging matrix”, all occurrences of “* avg” can be directly replaced by simply “∧”. This change will get announced wherever canonical versions of Decapodes are being collected.

This is one of those cases where a feature makes model specification clearer and model computation more efficient.

@lukem12345 lukem12345 marked this pull request as ready for review February 3, 2024 17:55
@lukem12345
Copy link
Member Author

Local history is messed up because of a rebase due to the docs/Manifest.toml being committed to the repo long ago. Will squash and merge when build passes.

@lukem12345 lukem12345 merged commit 146b67c into main Feb 3, 2024
6 of 8 checks passed
@lukem12345 lukem12345 deleted the llm/cism branch December 3, 2024 17:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add CISM benchmark to docs
5 participants