I think I understood that. 1) In order to save memory, use a larger real system 2) vec will store the real part with imaginary part equal to zero in the context of --scalar =complex. But this will not save memory.
Right? Thanks, Xiaodong On Tue, Jul 11, 2023 at 12:03 PM neil liu <[email protected]> wrote: > Do you mean that, > > even if I configure with --scalar=complex, when I use vecGetarray to get > the coords, the coords array is still stored in a real manner? > > Thanks, > > Xiaodong > > On Tue, Jul 11, 2023 at 11:54 AM Matthew Knepley <[email protected]> > wrote: > >> On Tue, Jul 11, 2023 at 11:48 AM neil liu <[email protected]> wrote: >> >>> 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. >>> >> >> We just store them with real part 0. >> >> Thanks, >> >> Matt >> >> >>> 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 >>>> > >>>> > >>>> > >>>> >>>> >> >> -- >> 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 >> >> https://www.cse.buffalo.edu/~knepley/ >> <http://www.cse.buffalo.edu/~knepley/> >> >
