Thanks for your reply. I am using DMPLEX to read GMSH. And it seems I have to use DMGetCoordinatesLocal(); VecGetArray(veccords, &coords);//it seems coords has to be defined by complex either.
2) Store the coordinates in coords with imaginary part equal to zero. I got the coordinates from above function *VecGetArray*, therefore will this reduce the memory? 3) is a good way to work around that. On Tue, Jul 11, 2023 at 11:40 AM Barry Smith <[email protected]> wrote: > > Not really. PetscScalar (and entries of vectors etc) are either real or > complex, they cannot be mixed. > > What parts of PETSc are you using, DM? > > You can > > 1) store the coordinates in arrays and not use Vec for them. (of if you > are not using DM) > 2) sore them in Vec but with imaginary part 0 > 3) rewrite your complex systems as real systems (with twice as many > unknowns, but only real ones) > > Barry > > > > On Jul 11, 2023, at 11:34 AM, neil liu <[email protected]> wrote: > > > > Dear Petsc developers, > > > > My computation involves both real and complex numbers. > > For example, my coordinate is real, but my matrix is complex. > > > > I use VecGetArray to get the coordinates. But it seems coordinates have > to be defined in a complex manner to be consistent with complex matrix. > > > > Is there some ways to work around this if I understood correctly ? > > > > Thanks, > > > > Xiaodong > > > > > > > >
