-
Notifications
You must be signed in to change notification settings - Fork 338
Glads gl #648
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
Open
RupertGladstone
wants to merge
74
commits into
devel
Choose a base branch
from
glads_gl
base: devel
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Glads gl #648
Changes from all commits
Commits
Show all changes
74 commits
Select commit
Hold shift + click to select a range
5162ce5
Adding routine for calculating GlaDS cross GL flux (total from both
RupertGladstone c26a49d
Renamed "workvar" to human readable names
RupertGladstone e3ea43f
tidying up "cycelement" decisions
RupertGladstone 53ba4c7
Adding new switches (not active yet)...
RupertGladstone c9f2a19
New switches implemented for "calving", and masking code moved to fun…
RupertGladstone 9b4e66b
Fixed null pointer to solverparams
RupertGladstone 22e8c7e
Minor bug fixes re indexing
RupertGladstone a7a789c
Merge branch 'elmerice' into glads_gl
RupertGladstone db92053
updating grounded melt solver for GlaDS
RupertGladstone 34ebbca
Adding option to not scale As according to effective pressure when co…
RupertGladstone 9815eab
Merge branch 'elmerice' into glads_gl
RupertGladstone c5aee30
reduce output print in GroundedSolver
chekki2mo 7119b72
bug fix for nonlinear Budd sliding in SSA
RupertGladstone c9d7f45
Add hybrid (between Schoof/Gag and Joughin versions) regularised coul…
RupertGladstone f66e2af
Integrated GMvalid with GroundedSolver.
RupertGladstone 186f498
Bug fix 'SSA Friction need N' info statement
RupertGladstone 9289819
updated info message from GroundedSolver
RupertGladstone ee11e86
Merge branch 'elmerice' into glads_gl
RupertGladstone 0839761
Modifying GlaDS to use specified mask instead of compbined hard coded
RupertGladstone c3e49a6
Documentation Covariance Utils
fgillet 957e54c
documentation
fgillet 5673efa
add header to solver files
fgillet 677c476
Add test cases for CovarianceVectorMutliply
fgillet d4e5860
add test BackgroundErrorCostSolver
fgillet c0c4b80
improve documentation
fgillet bd1dc91
updating GlaDS masking to optionally use the connectivity mask or gro…
RupertGladstone c1714a7
A selection of updates to get the calving-hydrology coupled model up-…
Morlocke 9bd1878
Resolve merge conflict - we already get SolverParams before the First…
Morlocke 9a39e40
Update Documentation
fgillet e5d05db
Update documentation
fgillet 600e768
Further changes to make the calving-hydrology coupling work again - m…
Morlocke 3a7e65e
Add max N to SSA sliding laws
RupertGladstone 6b3d11d
Merge branch 'elmerice' into glads_gl
RupertGladstone f1bfbe1
tidying glads GL flux calcs
RupertGladstone 77bbe42
Merge branch 'devel' into elmerice
tzwinger b77bd36
fix a bug in my earlier modifications based on Samuel's "calving" option
RupertGladstone b101091
GlaDSCoupledSolver: Bug fix to the looping for averaging the contribu…
RupertGladstone 3bfb36c
Merge branch 'elmerice' into glads_gl
RupertGladstone e6a3590
(attempted to) fix calculation of GlaDS sheet contribution to flow ac…
RupertGladstone ad89e80
Allow both min and max coupled iterations to be specified for GlaDSCo…
RupertGladstone ab286f7
Adding connectivity option for grounded mask to remove isolated groun…
RupertGladstone 0516cc9
updating connectivity mask options to allow for removal of isolated
RupertGladstone 203f4e3
Updates to PlumeSolver to fix a case where a plume actually has a co-…
Morlocke 66182aa
Now with all that old code taken out!
Morlocke c91ae73
Minor tweak to GlaDS and PlumeSolver to allow the plumes to use the n…
Morlocke e0e220d
Added user option to define mask name for SSA sliding (default still …
RupertGladstone 9a05add
Additional hybrid RC sliding parameterisation for SSA
RupertGladstone 6aa7bc7
Merge branch 'devel' into elmerice
tzwinger 8938d56
Report SSA friction mask name at info level 5
RupertGladstone 613c35d
Merge branch 'elmerice' into glads_gl
RupertGladstone ee057a9
Allow SSA code to use a different grounded mask by setting
RupertGladstone b1e79a0
Merge branch 'devel' into elmerice
RupertGladstone 85ff151
Max sheet thickness for GlaDS applied after sheet thickness update.
RupertGladstone 1bd4a7b
Merge branch 'elmerice' into glads_gl
RupertGladstone d0891c6
Allow 3D velocity for calculting sliding speed in grounded melt solver
RupertGladstone 03c0035
tweaking adaptive timestepping info statements
RupertGladstone 797cae6
reduced info level of adaptivity info from 12 to 7
RupertGladstone 97773a1
Merge branch 'devel' into elmerice
RupertGladstone d5e3329
Merge branch 'elmerice' into glads_gl
RupertGladstone 1ef1cce
Allow 4D flow solution to be passed to grounded melt solver (ignores …
RupertGladstone 7cd61d8
Committing Yu Wang's option to use regularised Coulomb sliding in SSA…
RupertGladstone 5c94823
Merge branch 'devel' into elmerice
RupertGladstone 522baf2
Merge branch 'elmerice' into glads_gl
RupertGladstone d5f1b20
resolve minor merge error in GroundedSolver.F90
RupertGladstone 2141fad
Merge branch 'devel' into glads_gl
RupertGladstone 25fff6c
Debug MeshUtils change re InDofs.
RupertGladstone 4190773
Additional optional hydrology-based checks for calculating grounded melt
RupertGladstone 67ce4d8
Merge branch 'devel' into glads_gl
RupertGladstone 5fac6cd
Merge branch 'devel' into glads_gl
RupertGladstone 20a8fc1
Update MeshUtils.F90
Morlocke 250a319
Update SolverUtils.F90
Morlocke 27279f0
Update SolverUtils.F90
Morlocke f6de99b
Update SolverUtils.F90
Morlocke 7964163
Update SolverUtils.F90
Morlocke File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -458,15 +458,19 @@ SUBROUTINE CheckCrevasseNodes(Mesh, CrevassePaths, Onleft, OnRight) | |
DO i=1,Mesh % NumberOfBulkElements | ||
DO j=1,SIZE(Mesh % Elements(i) % NodeIndexes) | ||
IF(RemoveNode(Mesh % Elements(i) % NodeIndexes(j))) THEN | ||
IF(PRESENT(OnLeft) .AND. OnLeft(Mesh % Elements(i) % NodeIndexes(j))) THEN | ||
OnLeft(Mesh % Elements(i) % NodeIndexes(j)) = .FALSE. | ||
OnLeft(ReplaceWithNode(Mesh % Elements(i) % NodeIndexes(j))) = .TRUE. | ||
IF(PRESENT(OnLeft)) THEN | ||
IF(OnLeft(Mesh % Elements(i) % NodeIndexes(j))) THEN | ||
OnLeft(Mesh % Elements(i) % NodeIndexes(j)) = .FALSE. | ||
OnLeft(ReplaceWithNode(Mesh % Elements(i) % NodeIndexes(j))) = .TRUE. | ||
END IF | ||
END IF | ||
IF(PRESENT(OnRight) .AND. OnRight(Mesh % Elements(i) % NodeIndexes(j))) THEN | ||
PRINT*, 'replace', Mesh % Elements(i) % NodeIndexes(j),& | ||
ReplaceWithNode(Mesh % Elements(i) % NodeIndexes(j)) | ||
OnRight(Mesh % Elements(i) % NodeIndexes(j)) = .FALSE. | ||
OnRight(ReplaceWithNode(Mesh % Elements(i) % NodeIndexes(j))) = .TRUE. | ||
IF(PRESENT(OnRight)) THEN | ||
IF(OnRight(Mesh % Elements(i) % NodeIndexes(j))) THEN | ||
PRINT*, 'replace', Mesh % Elements(i) % NodeIndexes(j),& | ||
ReplaceWithNode(Mesh % Elements(i) % NodeIndexes(j)) | ||
OnRight(Mesh % Elements(i) % NodeIndexes(j)) = .FALSE. | ||
OnRight(ReplaceWithNode(Mesh % Elements(i) % NodeIndexes(j))) = .TRUE. | ||
END IF | ||
END IF | ||
Mesh % Elements(i) % NodeIndexes(j) = & | ||
ReplaceWithNode(Mesh % Elements(i) % NodeIndexes(j)) | ||
|
@@ -1499,41 +1503,62 @@ END SUBROUTINE ZeroPolygon | |
! Constructs groups of nodes which fall below a given threshold for some variable | ||
! Used with the result of ProjectCalving, it groups nodes which have crevasse | ||
! penetration beyond the threshold. | ||
! | ||
! Added August 2024 ([email protected]): | ||
! Default is that valid mask values are only below the given threshold (e.g. shelf | ||
! only). New logical optional argument AboveThreshold_Optional allows this to be | ||
! reversed such that valid mask values are above the threshold (e.g. grounded) | ||
!----------------------------------------------------------------------------- | ||
SUBROUTINE FindCrevasseGroups(Mesh, Variable, Neighbours, Threshold, Groups) | ||
SUBROUTINE FindCrevasseGroups(Mesh, Variable, Neighbours, Threshold, Groups, AboveThreshold_Optional) | ||
IMPLICIT NONE | ||
|
||
TYPE(Mesh_t), POINTER :: Mesh | ||
TYPE(Variable_t), POINTER :: Variable | ||
INTEGER, POINTER :: Neighbours(:,:) | ||
TYPE(CrevasseGroup3D_t), POINTER :: Groups, CurrentGroup | ||
REAL(KIND=dp) :: Threshold | ||
TYPE(Mesh_t), POINTER :: Mesh | ||
TYPE(Variable_t), POINTER :: Variable | ||
INTEGER, POINTER :: Neighbours(:,:) | ||
TYPE(CrevasseGroup3D_t), POINTER :: Groups | ||
REAL(KIND=dp), INTENT(IN) :: Threshold | ||
LOGICAL, INTENT(IN),OPTIONAL :: AboveThreshold_Optional | ||
!--------------------------------------- | ||
TYPE(CrevasseGroup3D_t), POINTER :: CurrentGroup | ||
INTEGER :: i, ID | ||
REAL(KIND=dp), POINTER :: Values(:) | ||
INTEGER, POINTER :: VPerm(:) | ||
INTEGER, ALLOCATABLE :: WorkInt(:) | ||
LOGICAL, ALLOCATABLE :: Condition(:) | ||
LOGICAL :: First, Debug | ||
LOGICAL :: First, Debug, AboveThreshold | ||
|
||
Debug = .FALSE. | ||
|
||
IF (PRESENT(AboveThreshold_Optional)) THEN | ||
AboveThreshold = AboveThreshold_Optional | ||
ELSE | ||
AboveThreshold = .FALSE. | ||
END IF | ||
|
||
Values => Variable % Values | ||
VPerm => Variable % Perm | ||
|
||
ALLOCATE(Condition(Mesh % NumberOfNodes)) | ||
DO i=1, Mesh % NumberOfNodes | ||
|
||
IF(VPerm(i) <= 0) THEN | ||
Condition(i) = .FALSE. | ||
ELSE IF(Values(VPerm(i)) < Threshold) THEN | ||
Condition(i) = .TRUE. | ||
ELSE | ||
Condition(i) = .FALSE. | ||
IF (AboveThreshold) THEN | ||
IF (Values(VPerm(i)) .GT. Threshold) THEN | ||
Condition(i) = .TRUE. | ||
ELSE | ||
Condition(i) = .FALSE. | ||
END IF | ||
ELSE | ||
IF (Values(VPerm(i)) .LT. Threshold) THEN | ||
Condition(i) = .TRUE. | ||
ELSE | ||
Condition(i) = .FALSE. | ||
END IF | ||
END IF | ||
END IF | ||
|
||
END DO | ||
|
||
First = .TRUE. | ||
ID = 1 | ||
DO i=1,Mesh % NumberOfNodes | ||
|
@@ -2407,8 +2432,16 @@ SUBROUTINE GetDomainEdge(Model, Mesh, TopPerm, OrderedNodes, OrderedNodeNums, Pa | |
! Gather node coords from all partitions | ||
! Note, they're going into 'UnorderedNodes': though they are ordered | ||
! within their partition, the partitions aren't ordered... | ||
! For some reason, need to allocate coord lists in non-boss PEs | ||
!----------------------------------------------------------- | ||
|
||
IF(.NOT. Boss) THEN | ||
ALLOCATE(UnorderedNodes % x(1), UnorderedNodes % y(1), UnorderedNodes % z(1)) | ||
UnorderedNodes % x(1) = 0 | ||
UnorderedNodes % y(1) = 0 | ||
UnorderedNodes % z(1) = 0 | ||
END IF | ||
|
||
!Global Node Numbers | ||
CALL MPI_GATHERV(Mesh % ParallelInfo % GlobalDOFs(OrderedNodeNums),& | ||
NoNodesOnEdge,MPI_INTEGER,& | ||
|
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Calving3D test fails for me. Output
Backtrace for this error:
#0 0x7fa570f125af in ???
#0 0x7f5710e885af in ???
#1 0x7fa540d92cd3 in _calvinggeometry_MOD_getdomainedge
at /home/zwinger/Source/Elmer_devel/elmerfem/elmerice/Solvers/CalvingGeometry.F90:2424
#2 0x7fa540ddba97 in frontadvance3d
at /home/zwinger/Source/Elmer_devel/elmerfem/elmerice/Solvers/CalvingFrontAdvance3D.F90:197
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@tzwinger can you confirm that this test passes for you on devel branch? For me, on my laptop, it fails on both devel and glads_gl.