[petsc-users] Issue with DMPlexRestoreCone from Fortran
Hapla Vaclav
vaclav.hapla at erdw.ethz.ch
Thu Jul 4 09:46:33 CDT 2019
On 4 Jul 2019, at 16:19, Hapla Vaclav <vaclav.hapla at erdw.ethz.ch<mailto:vaclav.hapla at erdw.ethz.ch>> wrote:
On 4 Jul 2019, at 16:13, Hapla Vaclav <vaclav.hapla at erdw.ethz.ch<mailto:vaclav.hapla at erdw.ethz.ch>> wrote:
On 4 Jul 2019, at 15:36, Matthew Knepley <knepley at gmail.com<mailto:knepley at gmail.com>> wrote:
On Wed, Jul 3, 2019 at 1:03 PM Fabian.Jakub <Fabian.Jakub at physik.uni-muenchen.de<mailto:Fabian.Jakub at physik.uni-muenchen.de>> wrote:
Found the change...
it was in Commit 6d563f2afc7bcefff9dc7869193a6debf1d639a5
Date: Wed Jun 26 12:32:01 2019 +0000
remove remnants of non-existing
DMPlexRestore{Cone,ConeOrientation,Support}
You are right!
Vaclav, you cannot remove the Fortran RestoreCone() because it is actually doing something.
Fortran needs to create arrays, and this code deallocates them. We do not need that in C.
Can you put those back?
Sure, but then it should be documented somehow. Having that functions just for Fortran without explanation is very confusing.
But I only removed the following interface declarations and there are no other occurrences in the whole source tree:
git diff 6d563f2~ -- src/dm/f90-mod/petscdmplex.h90
diff --git a/src/dm/f90-mod/petscdmplex.h90 b/src/dm/f90-mod/petscdmplex.h90
index 7182cba..d20cdc4 100644
--- a/src/dm/f90-mod/petscdmplex.h90
+++ b/src/dm/f90-mod/petscdmplex.h90
@@ -10,16 +10,6 @@
End Interface
Interface
- Subroutine DMPlexRestoreCone(m,p,cone,ierr)
- use petscdmdef
- PetscInt p
- PetscInt, pointer :: cone(:)
- PetscErrorCode ierr
- DM m
- End Subroutine
- End Interface
-
- Interface
Subroutine DMPlexGetConeOrientation(m,p,coneOrient,ierr)
use petscdmdef
PetscInt p
@@ -40,16 +30,6 @@
End Interface
Interface
- Subroutine DMPlexRestoreSupport(m,p,support,ierr)
- use petscdmdef
- PetscInt p
- PetscInt, pointer :: support(:)
- PetscErrorCode ierr
- DM m
- End Subroutine
- End Interface
-
- Interface
Subroutine DMPlexGetTransitiveClosure(m,p,useCone,points,ierr)
use petscdmdef
PetscInt p
So I wonder what these can actually do?
Where are the mentioned C functions? I don't see any.
OK, I'm an idiot. I didn't realize the fortran stubs are lowercase so didn't use -i with grep :-)
Still my concern about documenting these holds. There should at least be a Fortran Note in that manpage.
Please discuss further at
https://bitbucket.org/petsc/petsc/pull-requests/1847
Thanks,
Vaclav
When we are at it, why e.g. DMPlexGetCone() has the /*@C comment on top when no custom fortran stub is provided?
Vaclav
Thanks,
Matt
The patch removed the fortran stubs but not the C functions.
In this case I guess that the fortran compiler reverts to the default
calling convention and thus does not nullify the cone pointers but
rather nulls the values in the cone.
I suggest you remove the C functions to get a compiler error or revert
the path.
Many thanks,
Fabian
On 7/3/19 3:18 PM, Matthew Knepley wrote:
> On Wed, Jul 3, 2019 at 7:38 AM Fabian.Jakub via petsc-users <
> petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov>> wrote:
>
>> Dear Matt, Dear Petsc
>>
>> After my recent pull of petsc master I encounter test fails that use
>> dmplex meshes.
>>
>> I attached a simple script to show an issue where DMPlexRestoreCone
>> mangles the cone relationships in the DM.
>>
>> The behaviour happens with gcc 7.4.0 aswell as icc 19.0.3.199
>> @ current petsc/master d3dc048301fdb3e4c282b528e7b28910551cfe13
>>
>> We recently had a system update and I am not 100% sure if this is some
>> weird stuff going on at my end or if this is indeed Plex related or if I
>> should not call Restore in the inner loop.
>>
>> Anyway, I would be most grateful if you could try to reproduce the error
>> and hint me towards a solution.
>>
>
> Hi Fabian,
>
> I think it might be your system update. Seems to run fine for me:
>
> master *:~/Downloads/tmp$ ./plex_prism
>
> Cone 0 : 1 2 3 4
> 5
>
> Cone 1 : 6 7 8
>
> Cone 2 : 12 13 14
>
> Cone 3 : 7 9 11 13
>
> Cone 4 : 6 9 10 12
>
> Cone 5 : 8 10 11 14
>
> Cone 6 : 15 16
>
> Cone 7 : 15 17
>
> Cone 8 : 16 17
>
> Cone 9 : 15 18
>
> Cone 10 : 16 19
>
> Cone 11 : 17 20
>
> Cone 12 : 18 19
>
> Cone 13 : 18 20
>
> Cone 14 : 19 20
>
> Cone 15 :
>
> Cone 16 :
>
> Cone 17 :
>
> Cone 18 :
>
> Cone 19 :
>
> Cone 20 :
>
> master *:~/Downloads/tmp$ ./plex_prism -show_plex ::ascii_info_detail
>
> DM Object: testplex 1 MPI processes
>
> type: plex
>
> testplex in 3 dimensions:
>
> Supports:
>
> [0] Max support size: 3
>
> [0]: 1 ----> 0
>
> [0]: 2 ----> 0
>
> [0]: 3 ----> 0
>
> [0]: 4 ----> 0
>
> [0]: 5 ----> 0
>
> [0]: 6 ----> 1
>
> [0]: 6 ----> 4
>
> [0]: 7 ----> 1
>
> [0]: 7 ----> 3
>
> [0]: 8 ----> 1
>
> [0]: 8 ----> 5
>
> [0]: 9 ----> 3
>
> [0]: 9 ----> 4
>
> [0]: 10 ----> 4
>
> [0]: 10 ----> 5
>
> [0]: 11 ----> 3
>
> [0]: 11 ----> 5
>
> [0]: 12 ----> 2
>
> [0]: 12 ----> 4
>
> [0]: 13 ----> 2
>
> [0]: 13 ----> 3
>
> [0]: 14 ----> 2
>
> [0]: 14 ----> 5
>
> [0]: 15 ----> 6
>
> [0]: 15 ----> 7
>
> [0]: 15 ----> 9
>
> [0]: 16 ----> 6
>
> [0]: 16 ----> 8
>
> [0]: 16 ----> 10
>
> [0]: 17 ----> 7
>
> [0]: 17 ----> 8
>
> [0]: 17 ----> 11
>
> [0]: 18 ----> 9
>
> [0]: 18 ----> 12
>
> [0]: 18 ----> 13
>
> [0]: 19 ----> 10
>
> [0]: 19 ----> 12
>
> [0]: 19 ----> 14
>
> [0]: 20 ----> 11
>
> [0]: 20 ----> 13
>
> [0]: 20 ----> 14
>
> Cones:
>
> [0] Max cone size: 5
>
> [0]: 0 <---- 1 (0)
>
> [0]: 0 <---- 2 (0)
>
> [0]: 0 <---- 3 (0)
>
> [0]: 0 <---- 4 (0)
>
> [0]: 0 <---- 5 (0)
>
> [0]: 1 <---- 6 (0)
>
> [0]: 1 <---- 7 (0)
>
> [0]: 1 <---- 8 (0)
>
> [0]: 2 <---- 12 (0)
>
> [0]: 2 <---- 13 (0)
>
> [0]: 2 <---- 14 (0)
>
> [0]: 3 <---- 7 (0)
>
> [0]: 3 <---- 9 (0)
>
> [0]: 3 <---- 11 (0)
>
> [0]: 3 <---- 13 (0)
>
> [0]: 4 <---- 6 (0)
>
> [0]: 4 <---- 9 (0)
>
> [0]: 4 <---- 10 (0)
>
> [0]: 4 <---- 12 (0)
>
> [0]: 5 <---- 8 (0)
>
> [0]: 5 <---- 10 (0)
>
> [0]: 5 <---- 11 (0)
>
> [0]: 5 <---- 14 (0)
>
> [0]: 6 <---- 15 (0)
>
> [0]: 6 <---- 16 (0)
>
> [0]: 7 <---- 15 (0)
>
> [0]: 7 <---- 17 (0)
>
> [0]: 8 <---- 16 (0)
>
> [0]: 8 <---- 17 (0)
>
> [0]: 9 <---- 15 (0)
>
> [0]: 9 <---- 18 (0)
>
> [0]: 10 <---- 16 (0)
>
> [0]: 10 <---- 19 (0)
>
> [0]: 11 <---- 17 (0)
>
> [0]: 11 <---- 20 (0)
>
> [0]: 12 <---- 18 (0)
>
> [0]: 12 <---- 19 (0)
>
> [0]: 13 <---- 18 (0)
>
> [0]: 13 <---- 20 (0)
>
> [0]: 14 <---- 19 (0)
>
> [0]: 14 <---- 20 (0)
>
> coordinates with 1 fields
>
> field 0 with 3 components
>
> Process 0:
>
> ( 0) dim 0 offset 0
>
> ( 1) dim 0 offset 0
>
> ( 2) dim 0 offset 0
>
> ( 3) dim 0 offset 0
>
> ( 4) dim 0 offset 0
>
> ( 5) dim 0 offset 0
>
> ( 6) dim 0 offset 0
>
> ( 7) dim 0 offset 0
>
> ( 8) dim 0 offset 0
>
> ( 9) dim 0 offset 0
>
> ( 10) dim 0 offset 0
>
> ( 11) dim 0 offset 0
>
> ( 12) dim 0 offset 0
>
> ( 13) dim 0 offset 0
>
> ( 14) dim 0 offset 0
>
> ( 15) dim 3 offset 0 0. 0. 0.
>
> ( 16) dim 3 offset 3 0. 2. 0.
>
> ( 17) dim 3 offset 6 2. 1. 0.
>
> ( 18) dim 3 offset 9 0. 0. 1.
>
> ( 19) dim 3 offset 12 0. 2. 1.
>
> ( 20) dim 3 offset 15 2. 1. 1.
>
> Cone 0 : 1 2 3 4
> 5
>
> Cone 1 : 6 7 8
>
> Cone 2 : 12 13 14
>
> Cone 3 : 7 9 11 13
>
> Cone 4 : 6 9 10 12
>
> Cone 5 : 8 10 11 14
>
> Cone 6 : 15 16
>
> Cone 7 : 15 17
>
> Cone 8 : 16 17
>
> Cone 9 : 15 18
>
> Cone 10 : 16 19
>
> Cone 11 : 17 20
>
> Cone 12 : 18 19
>
> Cone 13 : 18 20
>
> Cone 14 : 19 20
>
> Cone 15 :
>
> Cone 16 :
>
> Cone 17 :
>
> Cone 18 :
>
> Cone 19 :
>
> Cone 20 :
>
> DM Object: testplex 1 MPI processes
>
> type: plex
>
> testplex in 3 dimensions:
>
> Supports:
>
> [0] Max support size: 3
>
> [0]: 1 ----> 0
>
> [0]: 2 ----> 0
>
> [0]: 3 ----> 0
>
> [0]: 4 ----> 0
>
> [0]: 5 ----> 0
>
> [0]: 6 ----> 1
>
> [0]: 6 ----> 4
>
> [0]: 7 ----> 1
>
> [0]: 7 ----> 3
>
> [0]: 8 ----> 1
>
> [0]: 8 ----> 5
>
> [0]: 9 ----> 3
>
> [0]: 9 ----> 4
>
> [0]: 10 ----> 4
>
> [0]: 10 ----> 5
>
> [0]: 11 ----> 3
>
> [0]: 11 ----> 5
>
> [0]: 12 ----> 2
>
> [0]: 12 ----> 4
>
> [0]: 13 ----> 2
>
> [0]: 13 ----> 3
>
> [0]: 14 ----> 2
>
> [0]: 14 ----> 5
>
> [0]: 15 ----> 6
>
> [0]: 15 ----> 7
>
> [0]: 15 ----> 9
>
> [0]: 16 ----> 6
>
> [0]: 16 ----> 8
>
> [0]: 16 ----> 10
>
> [0]: 17 ----> 7
>
> [0]: 17 ----> 8
>
> [0]: 17 ----> 11
>
> [0]: 18 ----> 9
>
> [0]: 18 ----> 12
>
> [0]: 18 ----> 13
>
> [0]: 19 ----> 10
>
> [0]: 19 ----> 12
>
> [0]: 19 ----> 14
>
> [0]: 20 ----> 11
>
> [0]: 20 ----> 13
>
> [0]: 20 ----> 14
>
> Cones:
>
> [0] Max cone size: 5
>
> [0]: 0 <---- 1 (0)
>
> [0]: 0 <---- 2 (0)
>
> [0]: 0 <---- 3 (0)
>
> [0]: 0 <---- 4 (0)
>
> [0]: 0 <---- 5 (0)
>
> [0]: 1 <---- 6 (0)
>
> [0]: 1 <---- 7 (0)
>
> [0]: 1 <---- 8 (0)
>
> [0]: 2 <---- 12 (0)
>
> [0]: 2 <---- 13 (0)
>
> [0]: 2 <---- 14 (0)
>
> [0]: 3 <---- 7 (0)
>
> [0]: 3 <---- 9 (0)
>
> [0]: 3 <---- 11 (0)
>
> [0]: 3 <---- 13 (0)
>
> [0]: 4 <---- 6 (0)
>
> [0]: 4 <---- 9 (0)
>
> [0]: 4 <---- 10 (0)
>
> [0]: 4 <---- 12 (0)
>
> [0]: 5 <---- 8 (0)
>
> [0]: 5 <---- 10 (0)
>
> [0]: 5 <---- 11 (0)
>
> [0]: 5 <---- 14 (0)
>
> [0]: 6 <---- 15 (0)
>
> [0]: 6 <---- 16 (0)
>
> [0]: 7 <---- 15 (0)
>
> [0]: 7 <---- 17 (0)
>
> [0]: 8 <---- 16 (0)
>
> [0]: 8 <---- 17 (0)
>
> [0]: 9 <---- 15 (0)
>
> [0]: 9 <---- 18 (0)
>
> [0]: 10 <---- 16 (0)
>
> [0]: 10 <---- 19 (0)
>
> [0]: 11 <---- 17 (0)
>
> [0]: 11 <---- 20 (0)
>
> [0]: 12 <---- 18 (0)
>
> [0]: 12 <---- 19 (0)
>
> [0]: 13 <---- 18 (0)
>
> [0]: 13 <---- 20 (0)
>
> [0]: 14 <---- 19 (0)
>
> [0]: 14 <---- 20 (0)
>
> coordinates with 1 fields
>
> field 0 with 3 components
>
> Process 0:
>
> ( 0) dim 0 offset 0
>
> ( 1) dim 0 offset 0
>
> ( 2) dim 0 offset 0
>
> ( 3) dim 0 offset 0
>
> ( 4) dim 0 offset 0
>
> ( 5) dim 0 offset 0
>
> ( 6) dim 0 offset 0
>
> ( 7) dim 0 offset 0
>
> ( 8) dim 0 offset 0
>
> ( 9) dim 0 offset 0
>
> ( 10) dim 0 offset 0
>
> ( 11) dim 0 offset 0
>
> ( 12) dim 0 offset 0
>
> ( 13) dim 0 offset 0
>
> ( 14) dim 0 offset 0
>
> ( 15) dim 3 offset 0 0. 0. 0.
>
> ( 16) dim 3 offset 3 0. 2. 0.
>
> ( 17) dim 3 offset 6 2. 1. 0.
>
> ( 18) dim 3 offset 9 0. 0. 1.
>
> ( 19) dim 3 offset 12 0. 2. 1.
>
> ( 20) dim 3 offset 15 2. 1. 1.
>
>
> Thanks,
>
>
> Matt
>
>
>> As always, many many thanks!
>>
>> Fabian
>>
>> P.S. here the output of
>> make run
>>
>> and note the cones, the second time they are outputted...
>>
>> ./plex_prism -show_plex ::ascii_info_detail
>> DM Object: testplex 1 MPI processes
>> type: plex
>> testplex in 3 dimensions:
>> Supports:
>> [0] Max support size: 3
>> [0]: 1 ----> 0
>> [0]: 2 ----> 0
>> [0]: 3 ----> 0
>> [0]: 4 ----> 0
>> [0]: 5 ----> 0
>> [0]: 6 ----> 1
>> [0]: 6 ----> 4
>> [0]: 7 ----> 1
>> [0]: 7 ----> 3
>> [0]: 8 ----> 1
>> [0]: 8 ----> 5
>> [0]: 9 ----> 3
>> [0]: 9 ----> 4
>> [0]: 10 ----> 4
>> [0]: 10 ----> 5
>> [0]: 11 ----> 3
>> [0]: 11 ----> 5
>> [0]: 12 ----> 2
>> [0]: 12 ----> 4
>> [0]: 13 ----> 2
>> [0]: 13 ----> 3
>> [0]: 14 ----> 2
>> [0]: 14 ----> 5
>> [0]: 15 ----> 6
>> [0]: 15 ----> 7
>> [0]: 15 ----> 9
>> [0]: 16 ----> 6
>> [0]: 16 ----> 8
>> [0]: 16 ----> 10
>> [0]: 17 ----> 7
>> [0]: 17 ----> 8
>> [0]: 17 ----> 11
>> [0]: 18 ----> 9
>> [0]: 18 ----> 12
>> [0]: 18 ----> 13
>> [0]: 19 ----> 10
>> [0]: 19 ----> 12
>> [0]: 19 ----> 14
>> [0]: 20 ----> 11
>> [0]: 20 ----> 13
>> [0]: 20 ----> 14
>> Cones:
>> [0] Max cone size: 5
>> [0]: 0 <---- 1 (0)
>> [0]: 0 <---- 2 (0)
>> [0]: 0 <---- 3 (0)
>> [0]: 0 <---- 4 (0)
>> [0]: 0 <---- 5 (0)
>> [0]: 1 <---- 6 (0)
>> [0]: 1 <---- 7 (0)
>> [0]: 1 <---- 8 (0)
>> [0]: 2 <---- 12 (0)
>> [0]: 2 <---- 13 (0)
>> [0]: 2 <---- 14 (0)
>> [0]: 3 <---- 7 (0)
>> [0]: 3 <---- 9 (0)
>> [0]: 3 <---- 11 (0)
>> [0]: 3 <---- 13 (0)
>> [0]: 4 <---- 6 (0)
>> [0]: 4 <---- 9 (0)
>> [0]: 4 <---- 10 (0)
>> [0]: 4 <---- 12 (0)
>> [0]: 5 <---- 8 (0)
>> [0]: 5 <---- 10 (0)
>> [0]: 5 <---- 11 (0)
>> [0]: 5 <---- 14 (0)
>> [0]: 6 <---- 15 (0)
>> [0]: 6 <---- 16 (0)
>> [0]: 7 <---- 15 (0)
>> [0]: 7 <---- 17 (0)
>> [0]: 8 <---- 16 (0)
>> [0]: 8 <---- 17 (0)
>> [0]: 9 <---- 15 (0)
>> [0]: 9 <---- 18 (0)
>> [0]: 10 <---- 16 (0)
>> [0]: 10 <---- 19 (0)
>> [0]: 11 <---- 17 (0)
>> [0]: 11 <---- 20 (0)
>> [0]: 12 <---- 18 (0)
>> [0]: 12 <---- 19 (0)
>> [0]: 13 <---- 18 (0)
>> [0]: 13 <---- 20 (0)
>> [0]: 14 <---- 19 (0)
>> [0]: 14 <---- 20 (0)
>> coordinates with 1 fields
>> field 0 with 3 components
>> Process 0:
>> ( 0) dim 0 offset 0
>> ( 1) dim 0 offset 0
>> ( 2) dim 0 offset 0
>> ( 3) dim 0 offset 0
>> ( 4) dim 0 offset 0
>> ( 5) dim 0 offset 0
>> ( 6) dim 0 offset 0
>> ( 7) dim 0 offset 0
>> ( 8) dim 0 offset 0
>> ( 9) dim 0 offset 0
>> ( 10) dim 0 offset 0
>> ( 11) dim 0 offset 0
>> ( 12) dim 0 offset 0
>> ( 13) dim 0 offset 0
>> ( 14) dim 0 offset 0
>> ( 15) dim 3 offset 0 0. 0. 0.
>> ( 16) dim 3 offset 3 0. 2. 0.
>> ( 17) dim 3 offset 6 2. 1. 0.
>> ( 18) dim 3 offset 9 0. 0. 1.
>> ( 19) dim 3 offset 12 0. 2. 1.
>> ( 20) dim 3 offset 15 2. 1. 1.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> DM Object: testplex 1 MPI processes
>> type: plex
>> testplex in 3 dimensions:
>> Supports:
>> [0] Max support size: 3
>> [0]: 1 ----> 0
>> [0]: 2 ----> 0
>> [0]: 3 ----> 0
>> [0]: 4 ----> 0
>> [0]: 5 ----> 0
>> [0]: 6 ----> 1
>> [0]: 6 ----> 4
>> [0]: 7 ----> 1
>> [0]: 7 ----> 3
>> [0]: 8 ----> 1
>> [0]: 8 ----> 5
>> [0]: 9 ----> 3
>> [0]: 9 ----> 4
>> [0]: 10 ----> 4
>> [0]: 10 ----> 5
>> [0]: 11 ----> 3
>> [0]: 11 ----> 5
>> [0]: 12 ----> 2
>> [0]: 12 ----> 4
>> [0]: 13 ----> 2
>> [0]: 13 ----> 3
>> [0]: 14 ----> 2
>> [0]: 14 ----> 5
>> [0]: 15 ----> 6
>> [0]: 15 ----> 7
>> [0]: 15 ----> 9
>> [0]: 16 ----> 6
>> [0]: 16 ----> 8
>> [0]: 16 ----> 10
>> [0]: 17 ----> 7
>> [0]: 17 ----> 8
>> [0]: 17 ----> 11
>> [0]: 18 ----> 9
>> [0]: 18 ----> 12
>> [0]: 18 ----> 13
>> [0]: 19 ----> 10
>> [0]: 19 ----> 12
>> [0]: 19 ----> 14
>> [0]: 20 ----> 11
>> [0]: 20 ----> 13
>> [0]: 20 ----> 14
>> Cones:
>> [0] Max cone size: 5
>> [0]: 0 <---- 0 (0)
>> [0]: 0 <---- 0 (0)
>> [0]: 0 <---- 3 (0)
>> [0]: 0 <---- 4 (0)
>> [0]: 0 <---- 5 (0)
>> [0]: 1 <---- 0 (0)
>> [0]: 1 <---- 0 (0)
>> [0]: 1 <---- 8 (0)
>> [0]: 2 <---- 0 (0)
>> [0]: 2 <---- 0 (0)
>> [0]: 2 <---- 14 (0)
>> [0]: 3 <---- 0 (0)
>> [0]: 3 <---- 0 (0)
>> [0]: 3 <---- 11 (0)
>> [0]: 3 <---- 13 (0)
>> [0]: 4 <---- 0 (0)
>> [0]: 4 <---- 0 (0)
>> [0]: 4 <---- 10 (0)
>> [0]: 4 <---- 12 (0)
>> [0]: 5 <---- 0 (0)
>> [0]: 5 <---- 0 (0)
>> [0]: 5 <---- 11 (0)
>> [0]: 5 <---- 14 (0)
>> [0]: 6 <---- 0 (0)
>> [0]: 6 <---- 0 (0)
>> [0]: 7 <---- 0 (0)
>> [0]: 7 <---- 0 (0)
>> [0]: 8 <---- 0 (0)
>> [0]: 8 <---- 0 (0)
>> [0]: 9 <---- 0 (0)
>> [0]: 9 <---- 0 (0)
>> [0]: 10 <---- 0 (0)
>> [0]: 10 <---- 0 (0)
>> [0]: 11 <---- 0 (0)
>> [0]: 11 <---- 0 (0)
>> [0]: 12 <---- 0 (0)
>> [0]: 12 <---- 0 (0)
>> [0]: 13 <---- 0 (0)
>> [0]: 13 <---- 0 (0)
>> [0]: 14 <---- 0 (0)
>> [0]: 14 <---- 0 (0)
>> coordinates with 1 fields
>> field 0 with 3 components
>> Process 0:
>> ( 0) dim 0 offset 0
>> ( 1) dim 0 offset 0
>> ( 2) dim 0 offset 0
>> ( 3) dim 0 offset 0
>> ( 4) dim 0 offset 0
>> ( 5) dim 0 offset 0
>> ( 6) dim 0 offset 0
>> ( 7) dim 0 offset 0
>> ( 8) dim 0 offset 0
>> ( 9) dim 0 offset 0
>> ( 10) dim 0 offset 0
>> ( 11) dim 0 offset 0
>> ( 12) dim 0 offset 0
>> ( 13) dim 0 offset 0
>> ( 14) dim 0 offset 0
>> ( 15) dim 3 offset 0 0. 0. 0.
>> ( 16) dim 3 offset 3 0. 2. 0.
>> ( 17) dim 3 offset 6 2. 1. 0.
>> ( 18) dim 3 offset 9 0. 0. 1.
>> ( 19) dim 3 offset 12 0. 2. 1.
>> ( 20) dim 3 offset 15 2. 1. 1.
>>
>>
>
--
What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
-- Norbert Wiener
https://www.cse.buffalo.edu/~knepley/<http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20190704/774fcc53/attachment-0001.html>
More information about the petsc-users
mailing list