From ecfb1162fe8617030b1b6dda9c805d1e34279341 Mon Sep 17 00:00:00 2001 From: "Sascha M. Schnepp" Date: Fri, 19 Dec 2014 15:04:17 +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..5599869 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,fcg->mmax+1-fcg->nvecs),chunksize); 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