MCPcopy Create free account
hub / github.com/boutproject/BOUT-dev / N_VMin

Function N_VMin

externalpackages/PVODE/source/nvector.cpp:495–528  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

493}
494
495real N_VMin(N_Vector x)
496{
497 integer N;
498 real min, *xd, gmin;
499 machEnvType machenv;
500
501 N = x->length;
502 xd = x->data;
503 min = xd[0];
504 machenv = x->machEnv;
505
506#ifndef _OPENMP
507 for (integer i=1; i < N; i++, xd++) {
508 if ((*xd) < min) min = *xd;
509 }
510#else
511 #pragma omp parallel
512 {
513 real min2 = min;
514 #pragma omp for nowait
515 for (integer i=0; i < N; i++) {
516 if (xd[i] < min) min = xd[i];
517 }
518 #pragma omp critical
519 {
520 if(min2 < min)
521 min = min2;
522 }
523 }
524#endif
525
526 gmin = PVecAllReduce(min, 3, machenv);
527 return(gmin);
528}
529
530
531real N_VWL2Norm(N_Vector x, N_Vector w)

Callers 3

CVodeMallocFunction · 0.85
CVEwtSetSSFunction · 0.85
CVEwtSetSVFunction · 0.85

Calls 1

PVecAllReduceFunction · 0.85

Tested by

no test coverage detected