[petsc-users] *****SPAM*****Create vector with evenly spaced values
Barry Smith
bsmith at mcs.anl.gov
Fri Aug 29 12:00:42 CDT 2014
Better to just use VecGetArray() to access the Vector’s day and not allocate new space with the PetscMalloc()
On Aug 29, 2014, at 8:55 AM, Florian Lindner <mailinglists at xgm.de> wrote:
> Am 27.08.2014 14:12, schrieb Florian Lindner:
>> Hello,
>> is there a way to create a vector with evenly spaced values in an
>> interval, like the numpy.arange function?
>> http://docs.scipy.org/doc/numpy/reference/generated/numpy.arange.html
>> or the linspace function?
>
> Ok, I gave it as try. Do I need the VecAssembly the vector?
>
>
> void arange(size_t start, size_t stop)
> {
> // given a vector of appropriate size
> PetscScalar ierr;
> PetscScalar *a;
> ierr = PetscMalloc(sizeof(PetscScalar) * (stop-start), &a); CHKERRV(ierr);
> size_t pos = 0;
> for (size_t i = start; i < stop; i++) {
> a[pos] = i;
> pos++;
> }
> cout << "Array filled." << endl;
> VecReplaceArray(vector, a);
> // VecAssemblyBegin(vector); VecAssemblyEnd(vector); Do I need that?
> }
>
> Any comments?
>
> Thanks,
> Florian
More information about the petsc-users
mailing list