From be577e211d2af60fc0ff9dc54e2858c4aa511aca Mon Sep 17 00:00:00 2001 From: tmisawa Date: Thu, 18 Apr 2024 14:48:12 +0900 Subject: [PATCH] add KondoNConserved in CheckMPI.c --- src/CheckMPI.c | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/CheckMPI.c b/src/CheckMPI.c index db679987..6aab2bb6 100644 --- a/src/CheckMPI.c +++ b/src/CheckMPI.c @@ -164,8 +164,9 @@ int CheckMPI(struct BindStruct *X/**< [inout] */) } /*for (isite = X->Def.Nsite; isite < X->Def.NsiteMPI; isite++)*/ break; /*case HubbardNConserved:*/ - case KondoGC: case Kondo: + case KondoNConserved: + case KondoGC: /**@brief
  • For canonical Kondo system DefineList::Nup, DefineList::Ndown, and DefineList::Ne should be @@ -200,7 +201,32 @@ int CheckMPI(struct BindStruct *X/**< [inout] */) } }/*for (isite = X->Def.Nsite; isite < X->Def.NsiteMPI; isite++)*/ } /*if (X->Def.iCalcModel == Kondo)*/ - + else if(X->Def.iCalcModel == KondoNConserved){ + SmallDim = myrank; + for (isite = X->Def.Nsite; isite < X->Def.NsiteMPI; isite++) { + SpinNum = SmallDim % 4; + SmallDim /= 4; + if (X->Def.LocSpn[isite] == ITINERANT) { + if (SpinNum == 1 /*01*/) { + //X->Def.Nup -= 1; + X->Def.Ne -= 1; + } + else if (SpinNum == 2 /*10*/) { + //X->Def.Ndown -= 1; + X->Def.Ne -= 1; + } + else if (SpinNum == 3 /*11*/) { + //X->Def.Nup -= 1; + //X->Def.Ndown -= 1; + X->Def.Ne -= 2; + } + } + else { + fprintf(stdoutMPI, "\n Stop because local spin in the inter process region\n"); + return FALSE; + } + }/*for (isite = X->Def.Nsite; isite < X->Def.NsiteMPI; isite++)*/ + } break; /*case KondoGC, Kondo*/ } /*switch (X->Def.iCalcModel) 2(inner)*/