Convolution of partitions(cluster expansion technique)
Author
Andrey Kudlis, Ivan Iorsh
Title
Convolution of partitions(cluster expansion technique)
Description
This notebook contains functions which helps to convolve the partitions in terms of arbitrary indices to specific combinations of momenta. It needs for realization of cluster expansion technique applied to semiconductor physics.
Category
Working Material
Keywords
convolution, cluster expansion, correlations
URL
http://www.notebookarchive.org/2021-01-6wejda3/
DOI
https://notebookarchive.org/2021-01-6wejda3
Date Added
2021-01-15
Date Last Modified
2021-01-15
File Size
7.56 megabytes
Supplements
Rights
CC BY 4.0



SetOptions[Simplify,TimeConstraintInfinity];
Functions:
Functions:
Appearing of summation indices:
k1k2qk1Pk2PqPk1PPk2PPqPP
Variable change in our potential :
Variable change in our potential :
Functions:
Functions:
FunctionChangeNameToOrederArgs={Gctf2,Gct4Gct4Sorted,Gct6Gct6Sorted,Gct8Gct8Sorted,Gct10Gct10Sorted};FunctionChangeNameToOrederArgsRepeat={f4Gct4Sorted,f6Gct6Sorted,f8Gct8Sorted,f10Gct10Sorted};Gct4Sorted[args___]:=Apply[f4,Sort[{args}]]*Signature[{args}];Gct6Sorted[args___]:=Apply[f6,Sort[{args}]]*Signature[{args}];Gct8Sorted[args___]:=Apply[f8,Sort[{args}]]*Signature[{args}];Gct10Sorted[args___]:=Apply[f10,Sort[{args}]]*Signature[{args}];f2[x_,y_]+f2[y_,x_]^:=KroneckerDelta[x,y];f2[x_,y_]+f2[y_,x_]^:=KroneckerDelta[x,y];V[x_]/;Internal`SyntacticNegativeQ[x]:=V[-x];rule=KroneckerDelta[x_,y_]^n_/;n>0KroneckerDelta[x,y];localAs={f2≠KroneckerDelta&&f2≠f4&&f4≠KroneckerDelta&&f6≠KroneckerDelta&&f8≠KroneckerDelta&&f10≠KroneckerDelta};$Assumptions={omega∈Reals,k1∈Integers,k2P∈Integers,k∈Integers,q∈Integers,q≠0,qP∈Integers,qP≠0,rule,f2≠KroneckerDelta&&f2≠f4&&f2≠V&&KroneckerDelta≠V&&f4≠V&&f6≠V&&f8≠V&&f10≠V&&f4≠KroneckerDelta&&f6≠KroneckerDelta&&f8≠KroneckerDelta&&f10≠KroneckerDelta};
ConvolutionWithSmallPotentialv[expression_,OutVarChange_,SumInd_]:=Module[{expressionIn,expOut,inf,k1In,k2In,qIn},k1In=SumInd[[1]];k2In=SumInd[[2]];qIn=SumInd[[3]];inf=FullKron[i1,i2,j2,j1,k1In,k2In,qIn];expressionIn=expression/.OutVarChange;expOut=0;Do[Do[expOut=expOut+inf[[r1]][[1]]*(expressionIn/.inf[[r1]][[2]][[r2]]),{r2,1,4}],{r1,1,4}];V[qIn]*expOut//Expand];
BeforeChecker[in_]:=Level[in,1];(*f2[i1p["-"],i1["+"]]->f2[i1p["-"],i1["+"]]KroneckerDelta[i1,i1p]*)(*f2[{"c",k2}["-"],{"v",k}["+"]]f2[{"c",k2}["-"],{"v",k}["+"]]KroneckerDelta[k,k2]*)checker[in_]:=Module[{ans,takerAllInf,localmultiplier,takerZone,sign,arg,takerSign,inf,takerMom,creationMom,anihilationMom,arg1,arg2,mom1,mom2,zon1,zon2},takerAllInf[x__[y__]]:={x,{y}};(*takerAllInf[f2[{"2",m},2]]={f2,{{"2",m},2}}*)(*takerAllInf[x__[y__]^_]:={x,{y}};*)takerSign[_[x__]]:=x;(*takerSign[{blabla}["+"]]="+"*)takerMom[x__[_]]:=If[Length[x]0,x,x[[2]]];takerZone[x__[_]]:=If[Length[x]0,1,x[[1]]];inf=takerAllInf[in];If[NumberQ[in],ans=in];If[infV,ans=in];Assuming[localAs,If[Simplify[inf[[1]]≠KroneckerDelta],creationMom=0;anihilationMom=0;Do[arg=inf[[2]][[i]];(*Print[arg];*)sign=takerSign[arg];(*Print[sign," ",takerMom[arg]," ",Length[inf[[2]]]];*)If[sign"+",creationMom=creationMom+takerMom[arg]];If[sign"-",anihilationMom=anihilationMom+takerMom[arg]];,{i,1,Length[inf[[2]]]}];(*Print[creationMom," ",anihilationMom," ",Simplify[KroneckerDelta[creationMom,anihilationMom]]];*)(*ans=Assuming[q≠0,Simplify[KroneckerDelta[creationMom,anihilationMom]]]*in;*)localmultiplier=1;If[!Simplify[creationMomanihilationMom],localmultiplier=0];ans=KroneckerDelta[creationMom,anihilationMom]*in*localmultiplier;]];Assuming[localAs,If[Simplify[inf[[1]]==KroneckerDelta],If[Length[inf[[2]]]>2,Print["ACHTUNG, in Kroneker >2 arguments"];Abort[]];arg1=inf[[2]][[1]];arg2=inf[[2]][[2]];mom1=takerMom[arg1];mom2=takerMom[arg2];zon1=takerZone[arg1];zon2=takerZone[arg2];localmultiplier=1;If[!Simplify[mom2mom1],localmultiplier=0];ans=KroneckerDelta[mom2,mom1]*KroneckerDelta[zon1,zon2]*localmultiplier;]];ans];listProduct[x_List]:=Times@@x;toTerm[in_]:=listProduct[Map[checker,BeforeChecker[in]]];(*f2[{"c",k2-q}["+"],{"c",k1}["-"]]f2[{"c",k1+q}["+"],{"c",k}["-"]]*)toWholeExpression[in_]:=Expand[Total[Map[toTerm,Level[Expand[in],1]]]];(*f2[{"c",k2-q}["+"],{"c",k1}["-"]]f2[{"c",k1+q}["+"],{"c",k}["-"]]+f2[{"c",k3-q}["+"],{"c",k1}["-"]]f2[{"c",k1+q}["+"],{"c",k}["-"]]*)(*DIFFERENTTERMS!!!*)
takerL[x__[y__]]:=If[NumericQ[x[y]],0,{x,{y}}];equationSimplifier[eq_,localsub_]:=Module[{justTrick,sysstemL,simplifiedsystemL,fromsystemTolist},sysstemL=Apply[And,eq];sysstemL=sysstemL/.localsub;simplifiedsystemL=sysstemL//FullSimplify;simplifiedsystemL=And[simplifiedsystemL,justTrick0];fromsystemTolist=simplifiedsystemL/.AndList;Drop[fromsystemTolist,-1]];fromTermListOfEquations[in_]:=Module[{expinL,arrayL,justTrick,kronekerlistL,momentumlistL,sysstemL,simplifiedsystemL,fromsystemTolist},expinL=in;arrayL=Level[expinL,1];kronekerlistL=Map[takerL,Select[Select[arrayL,!NumericQ[#]&],takerL[#][[1]]==KroneckerDelta&]];momentumlistL=Map[#[[2]][[1]]==#[[2]][[2]]&,kronekerlistL];equationSimplifier[momentumlistL,{}]];AdditionalSubstitution[SummedVar_,TwoSymmetricVariables_,commonSumVar_]:=Module[{ins,substitution},ins=Intersection[SummedVar,TwoSymmetricVariables];substitution={};If[Length[ins]1,substitution=Map[#commonSumVar&,TwoSymmetricVariables]];substitution];KronekerConvolute[in_,summationVariables_,SymmetricVariables_]:=Module[{expOutL,summationVariablesOutL,iter,sumvariables,equationVar,localSubstitution,summationVariablesL,ListOfSubstitutions,solL,listOfEquations,ListOfVarAlreadySummed,expinL,TrueNumberOfKronekers,lenL},summationVariablesL=summationVariables;summationVariablesOutL=summationVariablesL;listOfEquations=fromTermListOfEquations[in];(*TRUE*)expinL=in;expOutL=expinL;TrueNumberOfKronekers=Length[listOfEquations];If[TrueNumberOfKronekers>0,ListOfVarAlreadySummed={};ListOfSubstitutions={};iter=1;While[iter≤TrueNumberOfKronekers,equationVar=listOfEquations[[1]];Do[solL=Solve[equationVar,sumVar];(*Print[solL];*)lenL=Length[solL];(*Print[lenL];*)If[lenL0,Continue[]];If[lenL>1,Print["ACHTUNG, PROBLEM with kronekers!"];Abort[]];If[lenL==1,AppendTo[ListOfVarAlreadySummed,sumVar];localSubstitution=solL[[1]][[1]];(*AppendTo[ListOfSubstitutions,solL[[1]][[1]]];*)Break[];];,{sumVar,summationVariablesL}];expOutL=expOutL/.localSubstitution;listOfEquations=equationSimplifier[listOfEquations,localSubstitution];(*Print[summationVariablesL];Print[ListOfVarAlreadySummed];Print["beda"];*)summationVariablesL=Complement[summationVariablesL,ListOfVarAlreadySummed];iter++];Do[expOutL=expOutL/.AdditionalSubstitution[ListOfVarAlreadySummed,i[[1]],i[[2]]];summationVariablesL=summationVariablesL/.AdditionalSubstitutionForSummationIndex[summationVariablesL,i[[1]],i[[2]]];,{i,SymmetricVariables}];];sumvariables=listProduct[Map[ToExpression[StringJoin[{"SumIn",ToString[#]}]]&,summationVariablesL]];(*Print[summationVariablesL];Print[expOutL];*)sumvariables*expOutL];
AdditionalSubstitutionForSummationIndex[summationVariablesLIn_,TwoSymmetricVariablesIn_,commonSumVarIn_]:=Module[{ins,substitution},ins=Intersection[summationVariablesLIn,TwoSymmetricVariablesIn];substitution={};If[Length[ins]1,substitution=Map[#commonSumVarIn&,TwoSymmetricVariablesIn]];substitution];
AssumptionsConstructorInTermsOfk[inputarray_]:=Module[{assumarrayin,inv1,inv2,inv3,inv4},assumarrayin={};Do[inv1[l]=(inputarray[[l]]/.{qqIn}/.{qPq}/.{qInqP});inv2[l]=(inputarray[[l]]/.{q-q});inv3[l]=(inputarray[[l]]/.{qP-qP});inv4[l]=(inputarray[[l]]/.{q-q,qP-qP});AppendTo[assumarrayin,inputarray[[l]]inv1[l]];FunctionChangeNameToOrederArgsRepeat={f4Gct4Sorted,f6Gct6Sorted,f8Gct8Sorted,f10Gct10Sorted};AppendTo[assumarrayin,inputarray[[l]]inv2[l]];AppendTo[assumarrayin,inputarray[[l]]inv3[l]];,{l,1,Length[inputarray]}];assumarrayin];
SimplifyDoInTermsOfk[in_,id_]:=Module[{input,lastpart,DevidedSets,mainpart,workset,outputexp,newExp,ourassumtionsIn,exp},outputexp=0;input=in/.FunctionChangeNameToOrederArgsRepeat;workset=Level[input,1];(*hastobeexpanded*)lastpart=Mod[Length[workset],id];Print["Number of terms in last set:",lastpart];mainpart=Quotient[Length[workset],id];Print["Number of main sets:",mainpart];Do[DevidedSets[i]=workset[[(i-1)*id+1;;i*id]],{i,1,mainpart}];If[lastpart≠0,DevidedSets[mainpart+1]=workset[[mainpart*id+1;;Length[workset]]],DevidedSets[mainpart+1]={}];Print["Check that new set and initial sets are coicide:",input==Total[Flatten[Table[DevidedSets[i],{i,1,mainpart+1}],1]]];Do[exp[i]=Total@DevidedSets[i];ourassumtionsIn[i]=AssumptionsConstructorInTermsOfk[DevidedSets[i]];newExp[i]=FullSimplify[exp[i],AssumptionsourassumtionsIn[i]];Print["Done: ",i];,{i,1,mainpart+1}];outputexp=Sum[newExp[i],{i,1,mainpart+1}];outputexp//Expand/.FunctionChangeNameToOrederArgsRepeat];
AssumptionsQ[inputarray_]:=Module[{assumarrayin,inv1,inv2},assumarrayin={};Do[inv1[l]=(inputarray[[l]]/.{q-q});AppendTo[assumarrayin,(inputarray[[l]]/.FunctionChangeNameToOrederArgsRepeat)(inv1[l]/.FunctionChangeNameToOrederArgsRepeat)];,{l,1,Length[inputarray]}];assumarrayin];
Fromf2ToPandN[in_]:=Module[{type,ans,takerAllInf,takerZone,sign1,sign2,arg,takerSign,inf,takerMom,creationMom,anihilationMom,arg1,arg2,mom1,mom2,zon1,zon2},takerAllInf[x__[y__]]:={x,{y}};takerSign[_[x__]]:=x;takerMom[x__[_]]:=If[Length[x]0,x,x[[2]]];takerZone[x__[_]]:=If[Length[x]0,1,x[[1]]];ans=in;inf=takerAllInf[in];If[inf[[1]]f2,If[Length[inf[[2]]]>2,Print["ACHTUNG, in f2 >2 arguments"];Abort[]];arg1=inf[[2]][[1]];arg2=inf[[2]][[2]];sign1=takerSign[arg1];sign2=takerSign[arg2];mom1=takerMom[arg1];mom2=takerMom[arg2];zon1=takerZone[arg1];zon2=takerZone[arg2];If[mom1!=mom2,Print["ACHTUNG, mom1 != mom2"];Abort[]];If[zon1==zon2,If[sign1"+",ans=n[zon1,mom1],ans=1-n[zon1,mom1]];,If[sign1"-"&&zon1"c",ans=P[nrm,mom1]];If[sign1"+"&&zon1"v",ans=-P[nrm,mom1]];If[sign1"-"&&zon1"v",ans=P[dg,mom1]];If[sign1"+"&&zon1"c",ans=-P[dg,mom1]];];];ans];Fromf2ToPandNtoTerm[in_]:=listProduct[Map[Fromf2ToPandN,BeforeChecker[in]]];Fromf2ToPandNtoWholeExpression[in_]:=Expand[Simplify[Total[Map[Fromf2ToPandNtoTerm,Level[Expand[in],1]]]]];ApproximationSelectorToTerm[term_,WhatToRemove_]:=Module[{output,array,onlyfunctions,setWithRemovableFunction},output=term;array=Level[term,1];onlyfunctions=Select[array,!NumericQ[#]&];setWithRemovableFunction=Select[onlyfunctions,takerL[#][[1]]WhatToRemove&];If[Length[setWithRemovableFunction]>0,output=0];output];ApproximationSelectorWholeExpression[input_,WhatToRemove_]:=Module[{workset,lastpart,outputexp},workset=Level[Expand[input],1];(*hastobeexpanded*)outputexp=Total[Map[ApproximationSelectorToTerm[#,WhatToRemove]&,workset]];outputexp];
FULLHANDLER[expressionInTemrsij_,outcvarchange_,ConvoluteIndex_,kVar_,SymmetricVar_]:=Module[{Step1,Step22,Step2,Step3,Step4},Step1=ConvolutionWithSmallPotentialv[expressionInTemrsij,outcvarchange,ConvoluteIndex]/.FunctionChangeNameToOrederArgsRepeat;Print["step 1: Done"];Step2=toWholeExpression[Step1]//Expand;Print["step 2: Done"];Step3=Total[Map[KronekerConvolute[#,kVar,SymmetricVar]&,Step2]]/.FunctionChangeNameToOrederArgsRepeat;Print["step 3: Done"];Step4=Simplify[Step3,AssumptionsAssumptionsQ[Step3]]/.FunctionChangeNameToOrederArgsRepeat;Print["step 4: Done"];Expand[(Step4)]];
OnlyKonvolve[expressionIn_,kVar_,SymmetricVar_]:=Module[{Step1,Step22,Step2,Step3,Step4},Step3=Total[Map[KronekerConvolute[#,kVar,SymmetricVar]&,expressionIn]]/.FunctionChangeNameToOrederArgsRepeat;Print["step 3: Done"];Step4=Simplify[Step3,AssumptionsAssumptionsQ[Step3]]/.FunctionChangeNameToOrederArgsRepeat;Print["step 4: Done"];Expand[(Step4)]];
FULLHANDLERBeforeQSimplifying[expressionInTemrsij_,outcvarchange_,ConvoluteIndex_,kVar_,SymmetricVar_]:=Module[{Step1,Step22,Step2,Step3,Step4},Step1=ConvolutionWithSmallPotentialv[expressionInTemrsij,outcvarchange,ConvoluteIndex]/.FunctionChangeNameToOrederArgsRepeat;Print["step 1: Done"];Step2=toWholeExpression[Step1]//Expand;Print["step 2: Done"];Step3=Total[Map[KronekerConvolute[#,kVar,SymmetricVar]&,Step2]]/.FunctionChangeNameToOrederArgsRepeat;Print["step 3: Done"];Expand[(Step3)]];
OnlyKronekerHandler[expressionInTemrsij_,kVar_,SymmetricVar_]:=Module[{Step1,Step2},Step1=toWholeExpression[expressionInTemrsij]//Expand;Step2=Total[Map[KronekerConvolute[#,kVar,SymmetricVar]&,Step1]];Expand[(Step2)]];
testAfterConvolute[funIn_,lambdasIn_,firstIn_,secondIn_]:=Module[{},Print[(funIn-SumInk12FPotential["2partcl","app4",SumInk12,lambdasIn,p1,p2,p3,p4]-SumInqFPotential["2partcl","app4",SumInq,lambdasIn,p1,p2,p3,p4]-FPotential["2partcl","app3",lambdasIn,p1,p2,p3,p4]//Expand)0];If[firstIn1,Print[((FPotential["2partcl","app4",SumInk12,lambdasIn,p1,p2,p3,p4]+FPotential["2partcl","app4",SumInk12,lambdasIn,p2,p1,p3,p4])/.{p1A-p2,p3A-p4}/.FunctionChangeNameToOrederArgsRepeat)0];Print[((FPotential["2partcl","app3",lambdasIn,p1,p2,p3,p4]+FPotential["2partcl","app3",lambdasIn,p2,p1,p3,p4])/.{p1A-p2,p3A-p4})0];Print[Simplify[((FPotential["2partcl","app4",SumInq,lambdasIn,p1,p2,p3,p4]+FPotential["2partcl","app4",SumInq,lambdasIn,p2,p1,p3,p4])/.{p1A-p2,p3A-p4}/.FunctionChangeNameToOrederArgsRepeat),AssumptionsAssumptionsQ[((FPotential["2partcl","app4",SumInq,lambdasIn,p1,p2,p3,p4]+FPotential["2partcl","app4",SumInq,lambdasIn,p2,p1,p3,p4])/.{p1A-p2,p3A-p4}/.FunctionChangeNameToOrederArgsRepeat)]]0];];If[secondIn1,Print[((FPotential["2partcl","app4",SumInk12,lambdasIn,p1,p2,p3,p4]+FPotential["2partcl","app4",SumInk12,lambdasIn,p1,p2,p4,p3])/.{p1A-p2,p3A-p4}/.FunctionChangeNameToOrederArgsRepeat)0];Print[((FPotential["2partcl","app3",lambdasIn,p1,p2,p4,p3]+FPotential["2partcl","app3",lambdasIn,p1,p2,p3,p4])/.{p1A-p2,p3A-p4})0];Print[Simplify[((FPotential["2partcl","app4",SumInq,lambdasIn,p1,p2,p3,p4]+FPotential["2partcl","app4",SumInq,lambdasIn,p1,p2,p4,p3])/.{p1A-p2,p3A-p4}/.FunctionChangeNameToOrederArgsRepeat),AssumptionsAssumptionsQ[((FPotential["2partcl","app4",SumInq,lambdasIn,p1,p2,p3,p4]+FPotential["2partcl","app4",SumInq,lambdasIn,p1,p2,p4,p3])/.{p1A-p2,p3A-p4}/.FunctionChangeNameToOrederArgsRepeat)]]0];];];
LATEX :
L
A
TE
X
Field contributions:
Field contributions:
Interaction contributions :
Interaction contributions :
One-particle correlations in terms of k. As example. In article: approx. \chi2 or Bloch equation:
One-particle correlations in terms of k. As example. In article: approx. \chi2 or Bloch equation:
In this document only this approximation is derived in terms of k momentum:
{i1p{"c",k},j1p{"v",k}}
OneParticleCommutstor[i1p_,j1p_,i1_,i2_,j2_,j1_]:=4f2[i1p["-"],i1["+"]]f2[i2["+"],j1["-"]]f2[j1p["+"],j2["-"]]-4f2[i1["+"],i1p["-"]]f2[i2["+"],j1["-"]]f2[j2["-"],j1p["+"]]-2f4[i2["+"],j1p["+"],j1["-"],j2["-"]]KroneckerDelta[i1["+"],i1p["-"]]+2f4[i1["+"],i1p["-"],i2["+"],j2["-"]]KroneckerDelta[j1p["+"],j1["-"]];
Coincide with RHS for correlations, it enters RHS with (-I*hbar) when LHS hbar*d/dt
FULLHANDLER[OneParticleCommutstor[i1p,j1p,i1,i2,j2,j1],{i1p{"c",k},j1p{"v",k}},{k1,k2,q},{k1,k2,q},{{{k1,k2},kP}}]//Simplify
step 1: Done
step 2: Done
step 3: Done
step 4: Done
8SumInq(-f2[{c,k}[+],{c,k}[-]]f2[{v,k}[-],{v,k}[+]]f2[{v,k+q}[+],{c,k+q}[-]]+f2[{c,k}[-],{c,k}[+]](f2[{c,k+q}[+],{c,k+q}[-]]f2[{v,k}[+],{c,k}[-]]+f2[{v,k}[+],{v,k}[-]]f2[{v,k+q}[+],{c,k+q}[-]])-f2[{v,k}[-],{v,k}[+]]f2[{v,k}[+],{c,k}[-]]f2[{v,k+q}[+],{v,k+q}[-]]+f2[{c,k}[-],{v,k}[+]](-f2[{c,k}[+],{c,k}[-]]f2[{c,k+q}[+],{c,k+q}[-]]+f2[{v,k}[+],{v,k}[-]]f2[{v,k+q}[+],{v,k+q}[-]])+SumInkPf4[{c,k}[-],{c,kP}[-],{c,kP+q}[+],{v,k-q}[+]]+SumInkPf4[{c,k}[-],{v,kP}[-],{v,kP-q}[+],{v,k+q}[+]]+SumInkPf4[{c,kP}[-],{c,k+q}[-],{c,kP+q}[+],{v,k}[+]]-SumInkPf4[{c,k+q}[-],{v,k}[+],{v,kP}[-],{v,kP+q}[+]])V[q]
8SumInq(-f2[{"c",k}["+"],{"c",k}["-"]]f2[{"v",k}["-"],{"v",k}["+"]]f2[{"v",k+q}["+"],{"c",k+q}["-"]]+f2[{"c",k}["-"],{"c",k}["+"]](f2[{"c",k+q}["+"],{"c",k+q}["-"]]f2[{"v",k}["+"],{"c",k}["-"]]+f2[{"v",k}["+"],{"v",k}["-"]]f2[{"v",k+q}["+"],{"c",k+q}["-"]])-f2[{"v",k}["-"],{"v",k}["+"]]f2[{"v",k}["+"],{"c",k}["-"]]f2[{"v",k+q}["+"],{"v",k+q}["-"]]+f2[{"c",k}["-"],{"v",k}["+"]](-f2[{"c",k}["+"],{"c",k}["-"]]f2[{"c",k+q}["+"],{"c",k+q}["-"]]+f2[{"v",k}["+"],{"v",k}["-"]]f2[{"v",k+q}["+"],{"v",k+q}["-"]])+SumInkPf4[{"c",k}["-"],{"c",kP}["-"],{"c",kP+q}["+"],{"v",k-q}["+"]]+SumInkPf4[{"c",k}["-"],{"v",kP}["-"],{"v",kP-q}["+"],{"v",k+q}["+"]]+SumInkPf4[{"c",kP}["-"],{"c",k+q}["-"],{"c",kP+q}["+"],{"v",k}["+"]]-SumInkPf4[{"c",k+q}["-"],{"v",k}["+"],{"v",kP}["-"],{"v",kP+q}["+"]])V[q]//Expand//Fromf2ToPandNtoWholeExpression
(8SumInkPSumInqf4[{"c",k}["-"],{"c",kP}["-"],{"c",kP+q}["+"],{"v",k-q}["+"]]V[q]+8SumInkPSumInqf4[{"c",k}["-"],{"v",kP}["-"],{"v",kP-q}["+"],{"v",k+q}["+"]]V[q]+8SumInkPSumInqf4[{"c",kP}["-"],{"c",k+q}["-"],{"c",kP+q}["+"],{"v",k}["+"]]V[q]-8SumInkPSumInqf4[{"c",k+q}["-"],{"v",k}["+"],{"v",kP}["-"],{"v",kP+q}["+"]]V[q]-8SumInqn["c",k+q]P[nrm,k]V[q]+8SumInqn["v",k+q]P[nrm,k]V[q]+8SumInqn["c",k]P[nrm,k+q]V[q]-8SumInqn["v",k]P[nrm,k+q]V[q])/8//Simplify
Coefficient[SumInq(SumInkPf4[{"c",k}["-"],{"c",kP}["-"],{"c",kP+q}["+"],{"v",k-q}["+"]]+SumInkPf4[{"c",k}["-"],{"v",kP}["-"],{"v",kP-q}["+"],{"v",k+q}["+"]]+SumInkPf4[{"c",kP}["-"],{"c",k+q}["-"],{"c",kP+q}["+"],{"v",k}["+"]]-SumInkPf4[{"c",k+q}["-"],{"v",k}["+"],{"v",kP}["-"],{"v",kP+q}["+"]]-n["c",k+q]P[nrm,k]+n["v",k+q]P[nrm,k]+n["c",k]P[nrm,k+q]-n["v",k]P[nrm,k+q])V[q],SumInkP]*SumInkP
Contributions to Bloch equation:
from interacton:
SumInq((-n["c",k+q]+n["v",k+q])P[nrm,k]+(n["c",k]-n["v",k])P[nrm,k+q])V[q]
from field:
COMT2[{"c",k}["-"],{"v",k}["+"]]
-dipMomEField[t](-f2[{"c",k}["-"],{"c",k}["+"]]+f2[{"v",k}["-"],{"v",k}["+"]])//Fromf2ToPandNtoWholeExpression
-dipMomEField[t]n["c",k]+dipMomEField[t]n["v",k]//Simplify
-dipMomEField[t](n[c,k]-n[v,k])
Contributions from two-particle correlations(beyond the Bloch equation): Remember about (-I) for RHS
SumInkPSumInq(f4[{"c",k}["-"],{"c",kP}["-"],{"c",kP-q}["+"],{"v",k+q}["+"]]+f4[{"c",k}["-"],{"v",kP}["-"],{"v",kP-q}["+"],{"v",k+q}["+"]]-f4[{"c",k-q}["-"],{"c",kP}["-"],{"c",kP-q}["+"],{"v",k}["+"]]-f4[{"c",k-q}["-"],{"v",kP}["-"],{"v",kP-q}["+"],{"v",k}["+"]])V[q]
Thus, our purpose is to find f4 for cccv cvvv combinations of zone indices.
Two-particle correlations in terms of arbitrary momenta for app.3 and app.4
Two-particle correlations in terms of arbitrary momenta for app.3 and app.4
Two-particle correlations in terms of arbitrary momenta for app.5 (pure three-particle contrib)
Two-particle correlations in terms of arbitrary momenta for app.5 (pure three-particle contrib)
Three-particle correlations in terms of arbitrary momenta for app.5 (diag. 1)
Three-particle correlations in terms of arbitrary momenta for app.5 (diag. 1)
Three-particle correlations in terms of arbitrary momenta for app.5 (diag. 1) linear
Three-particle correlations in terms of arbitrary momenta for app.5 (diag. 1) linear


Cite this as: Andrey Kudlis, Ivan Iorsh, "Convolution of partitions(cluster expansion technique)" from the Notebook Archive (2021), https://notebookarchive.org/2021-01-6wejda3

Download

