mirror of
https://github.com/LCPQ/DEHam
synced 2025-01-03 01:55:55 +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);
|
ierr = EPSGetEigenpair(eps,i,&kr,&ki,xr,xi);CHKERRQ(ierr);
|
||||||
xymat = 0.0;
|
xymat = 0.0;
|
||||||
|
|
||||||
ierr = VecNorm(xr, NORM_2, &norm);CHKERRQ(ierr);
|
|
||||||
PetscPrintf(PETSC_COMM_WORLD," Norm = %18f \n", (double)norm);
|
|
||||||
norm = 0.0;
|
norm = 0.0;
|
||||||
|
|
||||||
|
|
||||||
@ -269,7 +266,7 @@ int main(int argc,char **argv)
|
|||||||
}
|
}
|
||||||
if(ideter[kko] == 1 && ideter[kok] == 2){
|
if(ideter[kko] == 1 && ideter[kok] == 2){
|
||||||
xmat=xmat-(1.0/2.0)*(valxr[ii-Istart]*valxr[ii-Istart]);
|
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[kkio]=ideter[kkio];
|
||||||
}
|
}
|
||||||
ideter2[kko]=2;
|
ideter2[kko]=2;
|
||||||
@ -280,7 +277,7 @@ int main(int argc,char **argv)
|
|||||||
}
|
}
|
||||||
if(ideter[kko] == 2 && ideter[kok] == 1){
|
if(ideter[kko] == 2 && ideter[kok] == 1){
|
||||||
xmat=xmat-(1.0/2.0)*(valxr[ii-Istart]*valxr[ii-Istart]);
|
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[kkio]=ideter[kkio];
|
||||||
}
|
}
|
||||||
ideter2[kko]=1;
|
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;
|
xymat=xymat+xmat;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MPI_Reduce(&xymat, &xymatfin, 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, MPI_COMM_WORLD);
|
MPI_Reduce(&norm, &normfin, 1, MPI_DOUBLE, MPI_SUM, 0, PETSC_COMM_WORLD);
|
||||||
if(!mpiid){
|
if(!mpiid){
|
||||||
XS=(1.0/2.0)*(-1.0+sqrt(1.0+(4.0*xymatfin/normfin)));
|
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);
|
PetscPrintf(PETSC_COMM_WORLD,"\n norm = %18f xymat = %18f S^2 = %18f \n", normfin, xymatfin, XS);
|
||||||
xymatfin = 0.0;
|
xymatfin = 0.0;
|
||||||
normfin = 0.0;
|
normfin = 0.0;
|
||||||
|
Loading…
Reference in New Issue
Block a user