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

Matthew Knepley knepley at gmail.com
Mon Apr 15 19:20:23 CDT 2013


On Sat, Apr 13, 2013 at 9:51 PM, Dharmendar Reddy
<dharmareddy84 at gmail.com>wrote:

> 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 ?
>

Pushed.



> will you be adding Fortran interfaces to  the functions listed below ?
>
> FEMModules.F90:(.text+0xbfe0): undefined reference to
> `dmplexgetdefaultsection_'
>

This is just DMGetDefaultSection().

   Matt


> 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
>



-- 
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/20130415/be72671e/attachment.html>


More information about the petsc-users mailing list