[petsc-users] DMPlex Fortran examples

Dharmendar Reddy dharmareddy84 at gmail.com
Wed Mar 6 01:43:10 CST 2013


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.
>
> DMPlexGetConeSize gives run time error
>
>   I had to include petsc.h90 to fix 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 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130306/e77d5421/attachment.html>


More information about the petsc-users mailing list