Do not sort exponents, and fix norm of flow

This commit is contained in:
Ian Jauslin 2025-02-03 12:08:07 -05:00
parent 21e8dcdb8a
commit 50c09cf164

View File

@ -125,12 +125,12 @@ int lyapunov(
// size of flow (for reset)
for(i=0;i<MATSIZE;i++){
for(j=0;j<MATSIZE;j++){
norm+=fabs(flow[i*MATSIZE+j]);
if(norm>lyapunov_reset){
norm+=flow[i*MATSIZE+j]*flow[i*MATSIZE+j]/MATSIZE;
if(sqrt(norm)>lyapunov_reset){
break;
}
}
if(norm>lyapunov_reset){
if(sqrt(norm)>lyapunov_reset){
break;
}
}
@ -148,8 +148,8 @@ int lyapunov(
lyapunov[i]=log(fabs(flow[i*MATSIZE+i]))/(time-prevtime);
}
// sort lyapunov exponents
qsort(lyapunov, MATSIZE, sizeof(double), compare_double);
//// sort lyapunov exponents
//qsort(lyapunov, MATSIZE, sizeof(double), compare_double);
// average lyapunov
for(i=0; i<MATSIZE; i++){
@ -164,11 +164,11 @@ int lyapunov(
printf("% .15e % .15e % .15e\n",time, lyapunov[i], lyapunov_avg[i]);
}
printf("\n");
fprintf(stderr,"% .15e",time);
// print largest and smallest lyapunov exponent to stderr
if(MATSIZE>0){
fprintf(stderr," % .15e % .15e\n", lyapunov[0], lyapunov[MATSIZE-1]);
}
fprintf(stderr,"% .15e\n",time);
//// print largest and smallest lyapunov exponent to stderr
//if(MATSIZE>0){
// fprintf(stderr," % .15e % .15e\n", lyapunov[0], lyapunov[MATSIZE-1]);
//}
// set flow to Q:
LAPACKE_dorgqr(LAPACK_COL_MAJOR, MATSIZE, MATSIZE, MATSIZE, flow, MATSIZE, tmp11);