[petsc-users] DMPlex<Vec,Mat>SetClosure

Dharmendar Reddy dharmareddy84 at gmail.com
Sat Apr 13 21:51:11 CDT 2013


Hello,
         Got it. I understand the reason for errors. I was using XXXSetF90
functions in my code so i was using allocatable arrays. I thought all
set/getvlaues had corresponding F90 functions. I was trying to define and
use things consistently in the code.
I can fix the compile errors using pointers now.

Now, can i request for Fortran interface for DMPlexMatSetClosure ?

will you be adding Fortran interfaces to  the functions listed below ?

FEMModules.F90:(.text+0xbfe0): undefined reference to
`dmplexgetdefaultsection_'
FEMModules.F90:(.text+0xc048): undefined reference to
`petscsectiongetconstraintdof_

Solver.F90:(.text+0xaa1): undefined reference to `dmsnessetjacobianlocal_'
Solver.F90:(.text+0xabc): undefined reference to `dmsnessetfunctionlocal_'

Thanks
Reddy


On Sat, Apr 13, 2013 at 9:32 PM, Matthew Knepley <knepley at gmail.com> wrote:

> On Sat, Apr 13, 2013 at 9:18 PM, Dharmendar Reddy <dharmareddy84 at gmail.com
> > wrote:
>
>> I am getting bunch of erros in my code related to DMPlex
>>
>> If i use DMPlexVecSetClosure I get the following error.
>>
>> A pointer dummy argument may only be argument associated with a
>> pointer.   [FELM]
>>     call
>> DMPlexVecSetClosure(dm,PETSC_NULL_OBJECT,F,cellId,Felm,ADD_VALUES,ierr)
>>
>> Felm is defined as  : PetscScalar,allocatable :: Felm(:)
>>
>
> Did you look at the sample code?
>
>
> http://www.mcs.anl.gov/petsc/petsc-dev/src/dm/impls/plex/examples/tests/ex2f90.F.html
>
> You define pointers. You can see what function I have defined by looking
> at the header
>
>
> https://bitbucket.org/petsc/petsc/src/62a20339e027b37fab44424f1466054586f1dc85/include/finclude/ftn-custom/petscdmplex.h90?at=master
>
> and its clear from the file that DMPlexMatSetClosure() has not been
> defined in Fortran.
>
>    Matt
>
>
>> I do a similar call to DMPlexMatSetClosure, i get no error.
>>
>> Now if i use DMPlexVecSetClosureF90, code compiles, but i see undefined
>> reference error during link stage:
>>
>> FEMModules.F90:(.text+0xba77): undefined reference to
>> `dmplexvecsetclosuref90_'
>>
>> FEMModules.F90:(.text+0xbea9): undefined reference to
>> `dmplexmatsetclosure_'
>>
>> FEMModules.F90:(.text+0xbfe0): undefined reference to
>> `dmplexgetdefaultsection_'
>> FEMModules.F90:(.text+0xc048): undefined reference to
>> `petscsectiongetconstraintdof_
>>
>> Solver.F90:(.text+0xaa1): undefined reference to `dmsnessetjacobianlocal_'
>> Solver.F90:(.text+0xabc): undefined reference to `dmsnessetfunctionlocal_'
>>
>>
>>
>>
>> On Sat, Apr 13, 2013 at 8:22 PM, Matthew Knepley <knepley at gmail.com>wrote:
>>
>>> On Sat, Apr 13, 2013 at 8:20 PM, Dharmendar Reddy <
>>> dharmareddy84 at gmail.com> wrote:
>>>
>>>> Hello,
>>>>         I am getting an undefined reference error ::
>>>> FEMModules.F90:(.text+0xba77): undefined reference to
>>>> `dmplexvecsetclosuref90_'
>>>> FEMModules.F90:(.text+0xbea9): undefined reference to
>>>> `dmplexmatsetclosuref90_'
>>>>
>>>> I can see that DMPlexVecSetClosure is defined in
>>>>
>>>> /finclude/ftn-custom/petscdmplex.h90:159:
>>>>
>>>> but the name is DMPlexVecSetClosure instead of DMPlexVecSetClosureF90.
>>>>
>>>> And there is no DMPlexMatSetClosureF90
>>>>
>>>>
>>>> What should i do ?
>>>>
>>>
>>> I was not consistent here with the naming. Since an F77 version was not
>>> possible, I did not
>>> add F90. That is probably wrong, however I would like to scrap the F77
>>> version of Plex since
>>> everyone uses F90 now and the extra letters are annoying. Go ahead and
>>> use the function.
>>>
>>>     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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130413/f10a781b/attachment-0001.html>


More information about the petsc-users mailing list