29char valeur_equipot_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Valeur/valeur_equipot.C,v 1.5 2014/10/13 08:53:50 j_novak Exp $" ;
73#include "utilitaires.h"
77double valeur_equipot_fonc(
double,
const Param&) ;
85 int nz =
mg->get_nzone() ;
86 int nt =
mg->get_nt(0) ;
87 int np =
mg->get_np(0) ;
101 l_iso.set_etat_qcq() ;
106 parf.add_int_mod(
j, 0) ;
107 parf.add_int_mod(
k, 1) ;
118 for (
k=0;
k<np;
k++) {
120 for (
j=0;
j<nt;
j++) {
129 int nr =
mg->get_nr(
l) ;
131 for (
int i=nr-1;
i >= 0;
i--) {
132 double uux = (*this)(
l,
k,
j,
i) ;
145 cout <<
"Valeur::equipot: the point uu >= uu0 has not been found" <<
endl ;
146 cout <<
" for the phi index " <<
k <<
endl ;
147 cout <<
" and the theta index " <<
j <<
endl ;
164 "Valeur::equipot: WARNING : fabs(uux-uu0) < 1.e-14" <<
endl ;
169 cout <<
"Valeur::equipot: PROBLEM !!!" <<
endl ;
184 double x2 = (
mg->get_grille3d(
l2))->x[
i2] ;
185 double x3 = (
mg->get_grille3d(
l2))->x[
i3] ;
211double valeur_equipot_fonc(
double xi,
const Param&
par) {
213 int j =
par.get_int_mod(0) ;
214 int k =
par.get_int_mod(1) ;
215 int l =
par.get_int_mod(2) ;
216 double uu0 =
par.get_double() ;
219 return cuu.val_point_jk(
l, xi,
j,
k) -
uu0 ;
Time evolution with partial storage (*** under development ***).
Basic integer array class.
Coefficients storage for the multi-domain spectral method.
void equipot(double uu0, int nz_search, double precis, int nitermax, int &niter, Itbl &l_iso, Tbl &xi_iso) const
Determines an equipotential surface of the field represented by *this (inward search).
const Mg3d * mg
Multi-grid Mgd3 on which this is defined.
Mtbl_cf * c_cf
Coefficients of the spectral expansion of the function.
void coef() const
Computes the coeffcients of *this.
int etat
Logical state (ETATNONDEF , ETATQCQ or ETATZERO ).
double zerosec(double(*f)(double, const Param &), const Param &par, double a, double b, double precis, int nitermax, int &niter, bool abort=true)
Finding the zero a function.