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

Development #201

Merged
merged 465 commits into from
Jun 4, 2024
Merged

Development #201

merged 465 commits into from
Jun 4, 2024

Conversation

julesghub
Copy link
Member

No description provided.

lmoresi and others added 30 commits June 6, 2023 21:22
…s method for ipython help so that we can ask about solvers before using them.
…g. These are in place now and I am going back to try to get the tests and notebooks working again.
Add a action to build and push a docker to dockerhub
invalid tag name fix
Setting docker build on VEP branch only
Add a action to build and push a docker to dockerhub: `julesg/underworld3:VEP-preliminary-implementation`
.
Fix cython version to <3.0
1. Added a pytest with a pic sensitive stokes solve.
2. Merged in non-breaking changes from the Mask2Matrix branch. Still
mask variables are NOT a matrix as discussed.
Re-write estimate_dt to remove divide by 0 error
Re-write estimate_dt to remove divide by 0 error
lmoresi and others added 25 commits April 4, 2024 20:49
issue #179

Co-authored-by: Juan Carlos Graciosa <juan.graciosa@monash.edu>
* Fixes for swarm substepping

* Checking

* Monitor 1

* breaking in numpy - check that instead

* typo

* Odd

* interaction between swarm.access and swarm.dm.getLocalSize()

* IndexError also possible ...

* typo - fix
…h probably broke all the NS and AD benchmarks. Suggest we add a test for this based on the 1D adv-diffusion solver example which finally picked up the problem.
…ted (they are currently not imported at all).
changed jupyter_backend to trame
All conditions are now turned into a list before conversion.
Modifying test to test the conversion code.
conda recipe updates
Updating the interpolation routines.

These c functions are direct copies of the petsc routines
DMInterpolation_SetUp and DMInterpolation_Evaluate, only
with owning_cell information provided and used. Until petsc can
optionally use 'owning_cells' we will have to manually update the c code
like this commit.
* importing underworld3.mpi earlier on to avoid circular imports

* Only get the communicator via underworld3.mpi.comm
fix pyvista issue in binder, check whether it is running in binder or not
* Add uw_constants functionality (available, but not covered in tests, plugged into jit compiler and function evaluation)

* uw_constants: make recursive so we can nest constants in other constants correctly. Also works for nests of functions, constants etc, so perhaps this is really a sub-expression class not a constant class. Fix typo (substitute)

* renaming to 'expressions' and providing capacity to substitute all or just one expression. ViscousFlow and ViscoPlastic are converted over. VEP not yet

* Converting the solvers so f0, F1 are supplied as properties and any side effects are handled there (e.g. loading RHS for associated projection solvers). This simplifies the flow and make f0, F1 available before solve time so these can be checked by the user beforehand. All tests passing (not all at once, unfortunately)

* Tidy up before merging

* Surface integral tests should go back in

* Fixing up Viscoelasticity using expressions. Need to add meaningful tests. No word on whether VEP produces proper Jacobians or if we need to use a smooth version of Min()/Max()

* Managing differentiation of quantities with expressions. Ideally we intercept sympy.diff and make substitutions for non-constant expressions first (sympy sees all the symbols as constants). Not trivial because of sympy's approach to cloning objects.

* Fixes for VEP - DDt / functions. Better type-checking in expressions. Update object viewer for meshvariables (so it is actually helpful)

* Updates to fix sympy and caching issues

* Fixes for problems in Navier-Stokes

* Caching mechanism for JIT needs to expand expressions to see if their content has been updated (esp for things like timestep)

* Not sure u.degree - 1 or just 1 for the interpolation degree of the flux field terms.

* Implement penalty term in NS (go inheritence, go !!)

* Fix read_timestep function for discontinuous variables.

* Free surface (or ALE) models. The mesh-coordinate changes now reset the relevant parts of solvers

* New BC interface: add_bc() (#195)

Unifying the two BC functions add_dirichlet and add_natural.
+ The single add_condition() function is much easier to maintain.
+ Improvements in the handling of what 'conds' can be was also made.

 def add_condition(self, f_id, c_type, conds, label, components=None):
        """
        Add a dirichlet or neumann condition to the mesh.

        This function prepares UW data to use PetscDSAddBoundary().

        Parameters
        ----------
        f_id: int
            Index of the solver's field (equation) to apply the condition.
        c_type: string
            BC type. Either dirichlet (essential) or neumann (natural) conditions.
        conds: array_like of floats or a sympy.Matrix
            eg. For a 3D model with an unconstraint x component: (None, 5, 1.2) or sympy.Matrix([sympy.oo, 5, 1.2])
        label: string
            The label name to apply the BC. To find a label/boundary name run something like 
            mesh.view()
        components: array_like, single int value or None.
            (optional) tuple, or int of active conds components to use. Use 'None' for all conds to be used.
            If 'None' and components in 'cond' equal sympy.oo or -sympy.oo those components won't be used.
            eg. For the 3D example cond = (2, 5, 1.2), components = (1,2) the x components is ignored and uncontrainted.
        """

* Cleaning up the warning messages from the tests.

re: no longer needing 'components'

* Adding some info on testing

---------

Co-authored-by: Julian Giordani <julesghub@users.noreply.github.com>
Co-authored-by: Julian Giordani <house.of.jules@gmail.com>
@lmoresi
Copy link
Member

lmoresi commented Jun 4, 2024

The current dev version of the code has been benchmarked extensively and is a significant improvement on the current main branch. This PR over-writes the main branch with a new stable release. We expect a rapid-release cycle during this phase of benchmarking.

@lmoresi lmoresi marked this pull request as ready for review June 4, 2024 08:47
Copy link
Member

@lmoresi lmoresi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure why we are seeing conflicts as there should have been no changes to the main branch, but we should presume to over-write with the dev version of everything.

@julesghub - good to go as far as I am concerned, but I am not going to fix the conflicts !!

@julesghub julesghub merged commit 8ef637e into main Jun 4, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants