From 0b5b1dc1b0c060554ff14a707fe9e0602d958534 Mon Sep 17 00:00:00 2001 From: "Sascha M. Schnepp" Date: Sun, 21 Dec 2014 01:22:37 +0100 Subject: [PATCH] Fix to KSPAllocateVectors_FCG to allocate chunksize vectors. Currently nprealloc vectors are allocated on initialization but thereafter allocations happens one by one. --- src/ksp/ksp/impls/fcg/fcg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ksp/ksp/impls/fcg/fcg.c b/src/ksp/ksp/impls/fcg/fcg.c index cd2dc37..28469fa 100644 --- a/src/ksp/ksp/impls/fcg/fcg.c +++ b/src/ksp/ksp/impls/fcg/fcg.c @@ -27,7 +27,7 @@ static PetscErrorCode KSPAllocateVectors_FCG(KSP ksp, PetscInt nvecsneeded, Pets /* Allocate enough new vectors to add chunksize new vectors, reach nvecsneedtotal, or to reach mmax+1, whichever is smallest */ if(fcg->nvecs < PetscMin(fcg->mmax+1,nvecsneeded)){ nvecsprev = fcg->nvecs; - nnewvecs = PetscMin(PetscMin(nvecsneeded-fcg->nvecs,fcg->mmax+1-fcg->nvecs),chunksize); + nnewvecs = PetscMin(PetscMax(nvecsneeded-fcg->nvecs,chunksize),fcg->mmax+1-fcg->nvecs); ierr = KSPCreateVecs(ksp,nnewvecs,&fcg->pCvecs[fcg->nchunks],0,NULL);CHKERRQ(ierr); ierr = PetscLogObjectParents((PetscObject)ksp,nnewvecs,fcg->pCvecs[fcg->nchunks]);CHKERRQ(ierr); ierr = KSPCreateVecs(ksp,nnewvecs,&fcg->pPvecs[fcg->nchunks],0,NULL);CHKERRQ(ierr); -- 2.2.0