mirror of
https://github.com/LCPQ/DEHam
synced 2024-12-21 20:03:40 +01:00
still working on the bug
This commit is contained in:
parent
98dfbf4071
commit
4d6525ecf7
89
src/ex1.c
89
src/ex1.c
@ -234,9 +234,6 @@ int main(int argc,char **argv)
|
||||
*/
|
||||
ierr = EPSGetEigenpair(eps,i,&kr,&ki,xr,xi);CHKERRQ(ierr);
|
||||
xymat = 0.0;
|
||||
|
||||
ierr = VecNorm(xr, NORM_2, &norm);CHKERRQ(ierr);
|
||||
PetscPrintf(PETSC_COMM_WORLD," Norm = %18f \n", (double)norm);
|
||||
norm = 0.0;
|
||||
|
||||
|
||||
@ -269,7 +266,7 @@ int main(int argc,char **argv)
|
||||
}
|
||||
if(ideter[kko] == 1 && ideter[kok] == 2){
|
||||
xmat=xmat-(1.0/2.0)*(valxr[ii-Istart]*valxr[ii-Istart]);
|
||||
for(kkio=1;kkio<=8;kkio++){
|
||||
for(kkio=0;kkio<=7;kkio++){
|
||||
ideter2[kkio]=ideter[kkio];
|
||||
}
|
||||
ideter2[kko]=2;
|
||||
@ -280,7 +277,7 @@ int main(int argc,char **argv)
|
||||
}
|
||||
if(ideter[kko] == 2 && ideter[kok] == 1){
|
||||
xmat=xmat-(1.0/2.0)*(valxr[ii-Istart]*valxr[ii-Istart]);
|
||||
for(kkio=1;kkio<=8;kkio++){
|
||||
for(kkio=0;kkio<=7;kkio++){
|
||||
ideter2[kkio]=ideter[kkio];
|
||||
}
|
||||
ideter2[kko]=1;
|
||||
@ -292,18 +289,92 @@ int main(int argc,char **argv)
|
||||
}
|
||||
}
|
||||
}
|
||||
// for(kko=4;kko<=7;kko++){
|
||||
// for(kok=kko;kok<=7;kok++){
|
||||
// if(kok == kko && ideter[kok] != 3){
|
||||
// xmat=xmat+(3.0/4.0)*(valxr[ii-Istart]*valxr[ii-Istart]);
|
||||
// }
|
||||
// else{
|
||||
// if(ideter[kko] == 1 && ideter[kok] == 1){
|
||||
// xmat=xmat+(1.0/2.0)*(valxr[ii-Istart]*valxr[ii-Istart]);
|
||||
// }
|
||||
// if(ideter[kko] == 2 && ideter[kok] == 2){
|
||||
// xmat=xmat+(1.0/2.0)*(valxr[ii-Istart]*valxr[ii-Istart]);
|
||||
// }
|
||||
// if(ideter[kko] == 1 && ideter[kok] == 2){
|
||||
// xmat=xmat-(1.0/2.0)*(valxr[ii-Istart]*valxr[ii-Istart]);
|
||||
// for(kkio=0;kkio<=7;kkio++){
|
||||
// ideter2[kkio]=ideter[kkio];
|
||||
// }
|
||||
// ideter2[kko]=2;
|
||||
// ideter2[kok]=1;
|
||||
// adr_(ideter2, &iaa2);
|
||||
// iaa2 = iaa2 - 1;
|
||||
// xmat=xmat+valxr[ii-Istart]*valxr[iaa2];
|
||||
// }
|
||||
// if(ideter[kko] == 2 && ideter[kok] == 1){
|
||||
// xmat=xmat-(1.0/2.0)*(valxr[ii-Istart]*valxr[ii-Istart]);
|
||||
// for(kkio=0;kkio<=7;kkio++){
|
||||
// ideter2[kkio]=ideter[kkio];
|
||||
// }
|
||||
// ideter2[kko]=1;
|
||||
// ideter2[kok]=2;
|
||||
// adr_(ideter2, &iaa2);
|
||||
// iaa2 = iaa2 - 1;
|
||||
// xmat=xmat+valxr[ii-Istart]*valxr[iaa2];
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// for(kko=0;kko<=3;kko++){
|
||||
// for(kok=4;kok<=7;kok++){
|
||||
// if(kok == kko && ideter[kok] != 3){
|
||||
// xmat=xmat+(3.0/4.0)*(valxr[ii-Istart]*valxr[ii-Istart]);
|
||||
// }
|
||||
// else{
|
||||
// if(ideter[kko] == 1 && ideter[kok] == 1){
|
||||
// xmat=xmat+(1.0/2.0)*(valxr[ii-Istart]*valxr[ii-Istart]);
|
||||
// }
|
||||
// if(ideter[kko] == 2 && ideter[kok] == 2){
|
||||
// xmat=xmat+(1.0/2.0)*(valxr[ii-Istart]*valxr[ii-Istart]);
|
||||
// }
|
||||
// if(ideter[kko] == 1 && ideter[kok] == 2){
|
||||
// xmat=xmat-(1.0/2.0)*(valxr[ii-Istart]*valxr[ii-Istart]);
|
||||
// for(kkio=0;kkio<=7;kkio++){
|
||||
// ideter2[kkio]=ideter[kkio];
|
||||
// }
|
||||
// ideter2[kko]=2;
|
||||
// ideter2[kok]=1;
|
||||
// adr_(ideter2, &iaa2);
|
||||
// iaa2 = iaa2 - 1;
|
||||
// xmat=xmat+valxr[ii-Istart]*valxr[iaa2];
|
||||
// }
|
||||
// if(ideter[kko] == 2 && ideter[kok] == 1){
|
||||
// xmat=xmat-(1.0/2.0)*(valxr[ii-Istart]*valxr[ii-Istart]);
|
||||
// for(kkio=0;kkio<=7;kkio++){
|
||||
// ideter2[kkio]=ideter[kkio];
|
||||
// }
|
||||
// ideter2[kko]=1;
|
||||
// ideter2[kok]=2;
|
||||
// adr_(ideter2, &iaa2);
|
||||
// iaa2 = iaa2 - 1;
|
||||
// xmat=xmat+valxr[ii-Istart]*valxr[iaa2];
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
//---------------------------------------
|
||||
xymat=xymat+xmat;
|
||||
}
|
||||
}
|
||||
MPI_Reduce(&xymat, &xymatfin, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
|
||||
MPI_Reduce(&norm, &normfin, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
|
||||
MPI_Reduce(&xymat, &xymatfin, 1, MPI_DOUBLE, MPI_SUM, 0, PETSC_COMM_WORLD);
|
||||
MPI_Reduce(&norm, &normfin, 1, MPI_DOUBLE, MPI_SUM, 0, PETSC_COMM_WORLD);
|
||||
if(!mpiid){
|
||||
XS=(1.0/2.0)*(-1.0+sqrt(1.0+(4.0*xymatfin/normfin)));
|
||||
}
|
||||
//PetscBarrier((PetscObject)&XS);
|
||||
//PetscPrintf(PETSC_COMM_WORLD,"\n # root = %d norm = %18f xymat = %18f S^2 = %18f \n", i, normfin, xymatfin, XS);
|
||||
|
||||
printf("\n mpiid = %d # root = %d norm = %18f xymat = %18f S^2 = %18f \n", mpiid, i, norm, xymat, XS);
|
||||
PetscPrintf(PETSC_COMM_WORLD,"\n norm = %18f xymat = %18f S^2 = %18f \n", normfin, xymatfin, XS);
|
||||
xymatfin = 0.0;
|
||||
normfin = 0.0;
|
||||
|
Loading…
Reference in New Issue
Block a user