[petsc-users] DMPlex Fortran examples

Matthew Knepley knepley at gmail.com
Wed Mar 6 04:51:53 CST 2013


On Wed, Mar 6, 2013 at 2:43 AM, Dharmendar Reddy <dharmareddy84 at gmail.com>wrote:

> I think i caught the issues, please see the reply inline below. It is not
> clear to me for which DMPlex i should include petsc.h90 or petsc.h
>
> Still need to fix the DMPlexComputeCellGeometry  though
>
>
> On Tue, Mar 5, 2013 at 9:52 PM, Dharmendar Reddy <dharmareddy84 at gmail.com>wrote:
>
>> Hello,
>>
>>          I am having trouble with a couple of DMPlex routines.
>>  I was doing tests on various function calls that i may need to write a
>> test Poisson problem.
>>
>> First issue is with DMPlexComputeCellGeometry. For a rectangle cell
>> geometry, I get , v0, J, invJ, and detJ as zero.
>>
>
Geometric primitives of course depend on the way you specify a cell.
Simplicies are nice in
that you can only change the orientation, but hexes are harder. I specify
quads so that the
vertices go counter-clockwise around the boundary. Do you do this? If so,
can you send
a small example test that I can add to PETSc.


> DMPlexGetConeSize gives run time error
>>
>>   I had to include petsc.h90 to fix this.
>

I have fixed the manpage documentation to reflect this.


>
> DMPlexVecGetClosure gives runtime error, Should not this call be
>> DMPlexVecGetClosureF90 ? is there such interface ? I remember doing a
>> procedure like VecGetArrayF90 and VecRestoreArrayF90 when i had to pass
>> pointer which need to be restored.
>>
>>   Looks like there is an inconsistency in interface defined on petsc-dev
> manual page. and the interface defined in
> finclude/ftn-custom/petscdmplex.h90
> Fortran interface does not have the csize parameter defined below
>
> PetscErrorCode DMPlexVecGetClosure(DM dm, PetscSection section, Vec v, PetscInt point, PetscInt *csize, const PetscScalar *values[])
>
> I have noted this on the manpage.

Did you look at src/dm/impls/plex/examples/tests/ex2f90.F? It tests many of
these operations.

  Thanks,

     Matt


>
>
> I have attached test case with the make file and error.log. Please have a
>> look at it.
>> you need to run:
>> make all debug=0
>> ./testDMView
>>
>> Also, I have trouble compiling the code with debug=1 which uses petsc
>> configured in debug mode everything else being same (you can see the
>> configure options in the error.log).
>> I get this error message:
>> login1$ make all debug=1
>> make: *** /home1/00924/Reddy135/LocalApps/petsc-dev/mpi_rScalar: Is a
>> directory.  Stop
>> .
>>
>>
>>
>> On Tue, Mar 5, 2013 at 9:22 AM, Matthew Knepley <knepley at gmail.com>wrote:
>>
>>> On Tue, Mar 5, 2013 at 10:20 AM, Dharmendar Reddy <
>>> dharmareddy84 at gmail.com> wrote:
>>>
>>>> Thanks, so numDof is basically number of dof per topological entity of
>>>> a cell.  Did i get this right ?
>>>>
>>>
>>> Yes, dof per field per topological entity (sieve point depth).
>>>
>>>    Matt
>>>
>>>
>>>> +!     Let u be defined on vertices
>>>>
>>>>  +      numDof(0*(dim+1)+1)     = 1 (should not be number of nodes)
>>>>
>>>>  +!     Let v be defined on cells
>>>>
>>>>  +      numDof(1*(dim+1)+dim+1) = dim
>>>>
>>>>  +!     Let v be defined on faces
>>>>
>>>>  +      numDof(2*(dim+1)+dim)   = dim-1 (similarly, should not be number of faces time (dim-1))
>>>>
>>>>
>>>>
>>>>
>>>> On Tue, Mar 5, 2013 at 9:06 AM, Matthew Knepley <knepley at gmail.com>wrote:
>>>>
>>>>> On Tue, Mar 5, 2013 at 2:18 AM, Dharmendar Reddy <
>>>>> dharmareddy84 at gmail.com> wrote:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>>          Trying to understand the DMPlexCreateSection first. I have
>>>>>> created a test case, can you please have a look at it? Actually the code
>>>>>> has a link error on my system with petsc-dev.  I used DMPlexeCreateBoxMesh
>>>>>> to create the mesh. Looks like there is no Fortran interface to that
>>>>>> function. If i comment out the dmplexcreateboxmesh. It does create and
>>>>>> executable.
>>>>>>
>>>>>
>>>>> I have now pushed your example, slightly changed, to the repository:
>>>>>
>>>>>   src/dm/impls/plex/examples/tutorials/ex1.c/ex1f90.F
>>>>>
>>>>> and you can run with -dim 2 or -dim 3.
>>>>>
>>>>>   Thanks,
>>>>>
>>>>>      Matt
>>>>>
>>>>>
>>>>>> petscDMTest_v2.o: In function `MAIN__':
>>>>>> petscDMTest_v2.F90:(.text+0x9b): undefined reference to
>>>>>> `dmplexcreateboxmesh_'
>>>>>> make: [testDMMeshv2] Error 1 (ignored)
>>>>>>
>>>>>> Also, If include finclude/petsc.h90 instead of finclude/petsch.h i
>>>>>> get compile error :
>>>>>>
>>>>>> petscDMTest_v2.F90(73): error #6691: A pointer dummy argument may
>>>>>> only be argument a
>>>>>> ssociated with a pointer.   [NUMCOMP]
>>>>>>   call DMPlexCreateSection(dmMesh, topologyDim, numField, numComp,
>>>>>> numDof, &
>>>>>> ----------------------------------------------------------^
>>>>>> petscDMTest_v2.F90(73): error #6691: A pointer dummy argument may
>>>>>> only be argument a
>>>>>> ssociated with a pointer.   [NUMDOF]
>>>>>>   call DMPlexCreateSection(dmMesh, topologyDim, numField, numComp,
>>>>>> numDof, &
>>>>>> -------------------------------------------------------------------^
>>>>>> petscDMTest_v2.F90(74): error #6691: A pointer dummy argument may
>>>>>> only be argument a
>>>>>> ssociated with a pointer.   [BCFIELD]
>>>>>>                            numBC, bcField, bcPointIS,section,ierr)
>>>>>> ----------------------------------^
>>>>>> petscDMTest_v2.F90(74): error #6691: A pointer dummy argument may
>>>>>> only be argument a
>>>>>> ssociated with a pointer.   [BCPOINTIS]
>>>>>>                            numBC, bcField, bcPointIS,section,ierr)
>>>>>> -------------------------------------------^
>>>>>>
>>>>>> Please have a look at the attached test case and Makefile
>>>>>>
>>>>>>
>>>>>> On Mon, Mar 4, 2013 at 7:39 PM, Matthew Knepley <knepley at gmail.com>wrote:
>>>>>>
>>>>>>> On Mon, Mar 4, 2013 at 7:50 PM, Dharmendar Reddy <
>>>>>>> dharmareddy84 at gmail.com> wrote:
>>>>>>>
>>>>>>>> Hello,
>>>>>>>>          Is there a DMPlex based fortran example for solving a pde
>>>>>>>> such as laplace ? Even a c example will do. I am not able to understand the
>>>>>>>> terminology of chart, cone etc. Is there a paper or user guide to learn
>>>>>>>> more about the definitions of terms such as chart cone stratum ? I remember
>>>>>>>> reading a presentation file by mathew about sieve. Is there a newer
>>>>>>>> tutorial with terminology mapped to the new DMPlex/DMMesh functions.
>>>>>>>>
>>>>>>>
>>>>>>> There is a fully worked out Stokes example (SNES ex62) and a Finite
>>>>>>> Volume example (TS ex11),
>>>>>>> and there are a few tests. You should not need much of that stuff
>>>>>>> for defining a problem. I am
>>>>>>> writing up a paper about ex11 right now. There is a short manual
>>>>>>> section on unstructured grids as well.
>>>>>>>
>>>>>>> I think the key thing to understand is how to define a data layout
>>>>>>> over the mesh using a PetscSection.
>>>>>>> Once that is done, all the DM functions work as normal, and the last
>>>>>>> hard part is coding your residual
>>>>>>> loop. I have support for FEM schemes, but its undocumented and
>>>>>>> slightly complex in order to allow
>>>>>>> GPU assembly, so you may be more comfortable with your own element
>>>>>>> loop to start.
>>>>>>>
>>>>>>>   Thanks,
>>>>>>>
>>>>>>>      Matt
>>>>>>>
>>>>>>>
>>>>>>>> Thanks
>>>>>>>> Reddy
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> -----------------------------------------------------
>>>>>>>> Dharmendar Reddy Palle
>>>>>>>> Graduate Student
>>>>>>>> Microelectronics Research center,
>>>>>>>> University of Texas at Austin,
>>>>>>>> 10100 Burnet Road, Bldg. 160
>>>>>>>> MER 2.608F, TX 78758-4445
>>>>>>>> e-mail: dharmareddy84 at gmail.com
>>>>>>>> Phone: +1-512-350-9082
>>>>>>>> United States of America.
>>>>>>>> Homepage: https://webspace.utexas.edu/~dpr342
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> 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
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> -----------------------------------------------------
>>>>>> Dharmendar Reddy Palle
>>>>>> Graduate Student
>>>>>> Microelectronics Research center,
>>>>>> University of Texas at Austin,
>>>>>> 10100 Burnet Road, Bldg. 160
>>>>>> MER 2.608F, TX 78758-4445
>>>>>> e-mail: dharmareddy84 at gmail.com
>>>>>> Phone: +1-512-350-9082
>>>>>> United States of America.
>>>>>> Homepage: https://webspace.utexas.edu/~dpr342
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> 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
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> -----------------------------------------------------
>>>> Dharmendar Reddy Palle
>>>> Graduate Student
>>>> Microelectronics Research center,
>>>> University of Texas at Austin,
>>>> 10100 Burnet Road, Bldg. 160
>>>> MER 2.608F, TX 78758-4445
>>>> e-mail: dharmareddy84 at gmail.com
>>>> Phone: +1-512-350-9082
>>>> United States of America.
>>>> Homepage: https://webspace.utexas.edu/~dpr342
>>>>
>>>
>>>
>>>
>>> --
>>> 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
>>>
>>
>>
>>
>> --
>> -----------------------------------------------------
>> Dharmendar Reddy Palle
>> Graduate Student
>> Microelectronics Research center,
>> University of Texas at Austin,
>> 10100 Burnet Road, Bldg. 160
>> MER 2.608F, TX 78758-4445
>> e-mail: dharmareddy84 at gmail.com
>> Phone: +1-512-350-9082
>> United States of America.
>> Homepage: https://webspace.utexas.edu/~dpr342
>>
>
>
>
> --
> -----------------------------------------------------
> Dharmendar Reddy Palle
> Graduate Student
> Microelectronics Research center,
> University of Texas at Austin,
> 10100 Burnet Road, Bldg. 160
> MER 2.608F, TX 78758-4445
> e-mail: dharmareddy84 at gmail.com
> Phone: +1-512-350-9082
> United States of America.
> Homepage: https://webspace.utexas.edu/~dpr342
>



-- 
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130306/cabe64d3/attachment-0001.html>


More information about the petsc-users mailing list