177 class Vector_divfree ;
365 double alpha= -16.) ;
373 double alpha= -16.) ;
395 assert ((idx(0) >= 1) && (idx(0) <= 3)) ;
397 return (idx(0) - 1) ;
412 assert((place>=0) && (place<3)) ;
467 virtual const Scalar&
A()
const ;
586 int method = 6)
const ;
602 int num_front,
double fact_dir,
double fact_neu,
613 double neum_vr,
double dir_eta,
double neum_eta,
614 double dir_mu,
double neum_mu )
const ;
617 Vector poisson_dirichlet(
double lambda,
const Valeur& limit_vr,
619 int num_front)
const ;
635 int num_front)
const ;
651 double fact_dir,
double fact_neu,
652 int num_front)
const ;
668 double flux(
double radius,
const Metric& met)
const ;
670 void poisson_block(
double lambda,
Vector& resu)
const ;
694 void visu_arrows(
double xmin,
double xmax,
double ymin,
double ymax,
695 double zmin,
double zmax,
const char* title0 = 0x0,
696 const char* filename0 = 0x0,
bool start_dx =
true,
int nx = 8,
int ny = 8,
699 void visu_streamline(
double xmin,
double xmax,
double ymin,
double ymax,
700 double zmin,
double zmax,
const char* title0 = 0x0,
701 const char* filename0 = 0x0,
bool start_dx =
true,
int nx = 8,
int ny = 8,
759 const Metric& met, FILE* fich) ;
883 const Param* par_bc = 0x0)
const ;
897 const Param* par_bc = 0x0)
const ;
911 const Param* par_bc = 0x0)
const ;
925 const Param* par_bc = 0x0)
const ;
Metric for tensor calculation.
void poisson_boundary2(double lam, Vector &resu, Scalar boundvr, Scalar boundeta, Scalar boundmu, double dir_vr, double neum_vr, double dir_eta, double neum_eta, double dir_mu, double neum_mu) const
Alternative to previous poisson_boundary method for vectors ; this uses method 6 for vectorial solvin...
virtual void del_deriv() const
Deletes the derived quantities.
double flux(double radius, const Metric &met) const
Computes the flux of the vector accross a sphere r = const.
Scalar * p_potential[N_MET_MAX]
The potential giving the gradient part in the Helmholtz decomposition of any 3D vector ...
Sym_tensor ope_killing(const Metric &gam) const
Computes the Killing operator associated with a given metric.
const Vector_divfree & div_free(const Metric &) const
Returns the div-free vector in the Helmholtz decomposition.
int get_ndim() const
Gives the number of dimensions (ie dim.ndim )
void poisson_boundary(double lambda, const Mtbl_cf &limit_vr, const Mtbl_cf &limit_eta, const Mtbl_cf &limit_mu, int num_front, double fact_dir, double fact_neu, Vector &resu) const
Solves the vector Poisson equation with *this as a source with a boundary condition on the excised sp...
Flat metric for tensor calculation.
Tensor field of valence 0 (or component of a tensorial field).
Vector_divfree * p_div_free[N_MET_MAX]
The divergence-free vector of the Helmholtz decomposition of any 3D vector .
Scalar * p_A
Field defined by Insensitive to the longitudinal part of the vector, related to the curl...
Base class for coordinate mappings.
Vector poisson_robin(double lambda, const Valeur &limit_vr, const Valeur &limit_vt, const Valeur &limit_vp, double fact_dir, double fact_neu, int num_front) const
Solves the vector Poisson equation with *this as a source with a boundary condition on the excised sp...
Basic integer array class.
virtual Itbl indices(int place) const
Returns the index of a component given by its position in the Scalar array cmp .
const Metric *const met_div
Metric with respect to which the divergence is defined.
Values and coefficients of a (real-value) function.
void operator=(const Vector_divfree &a)
Assignment from another Vector_divfree.
virtual void change_triad(const Base_vect &)
Sets a new vectorial basis (triad) of decomposition and modifies the components accordingly.
void set_der_0x0() const
Sets the pointers on derived quantities to 0x0.
void update_vtvp()
Computes the components and from the potential and , according to: .
Tensor field of valence 1.
Vectorial bases (triads) with respect to which the tensorial components are defined.
Vector(const Map &map, int tipe, const Base_vect &triad_i)
Standard constructor.
void set_der_0x0() const
Sets the pointers on derived quantities to 0x0.
virtual void std_spectral_base()
Sets the standard spectal bases of decomposition for each component.
Sym_tensor ope_killing_conf(const Metric &gam) const
Computes the conformal Killing operator associated with a given metric.
virtual void exponential_filter_r(int lzmin, int lzmax, int p, double alpha=-16.)
Applies exponential filters to all components (see Scalar::exponential_filter_r ).
void update_etavr()
Computes the components and from the potential A and the divergence-free condition, according to : .
virtual void exponential_filter_ylm(int lzmin, int lzmax, int p, double alpha=-16.)
Applies exponential filters to all components (see Scalar::exponential_filter_ylm )...
virtual void del_derive_met(int) const
Logical destructor of the derivatives depending on the i-th element of met_depend in the class Vector...
virtual const Scalar & eta() const
Gives the field such that the angular components of the vector are written: .
Vector poisson(double lambda, int method=6) const
Solves the vector Poisson equation with *this as a source.
virtual void del_deriv() const
Deletes the derived quantities.
void set_vr_eta_mu(const Scalar &vr_i, const Scalar &eta_i, const Scalar &mu_i)
Defines the components through potentials and (see members p_eta and p_mu ), as well as the compon...
virtual ~Vector_divfree()
Destructor.
void sol_Dirac_A(const Scalar &aaa, Scalar &eta, Scalar &vr, const Param *par_bc=0x0) const
Solves a system of two-coupled first-order PDEs obtained from the divergence-free condition and the r...
const Scalar & divergence(const Metric &) const
The divergence of this with respect to a Metric .
virtual int position(const Itbl &idx) const
Returns the position in the Scalar array cmp of a component given by its index.
Scalar * p_mu
Field such that the angular components of the vector are written: .
virtual const Scalar & A() const
Gives the field defined by Related to the curl, A is insensitive to the longitudinal part of the ve...
Vector_divfree poisson() const
Computes the solution of a vectorial Poisson equation with *this as a source: .
virtual const Scalar & eta() const
Gives the field such that the angular components of the vector are written: .
void decompose_div(const Metric &) const
Makes the Helmholtz decomposition (see documentation of p_potential ) of this with respect to a given...
void set_der_met_0x0(int) const
Sets all the i-th components of met_depend in the class Vector (p_potential , etc...) to 0x0.
virtual void operator=(const Vector &a)
Assignment from a Vector.
Vector derive_lie(const Vector &v) const
Computes the Lie derivative of this with respect to some vector field v.
Vector_divfree(const Map &map, const Base_vect &triad_i, const Metric &met)
Standard constructor.
void visu_arrows(double xmin, double xmax, double ymin, double ymax, double zmin, double zmax, const char *title0=0x0, const char *filename0=0x0, bool start_dx=true, int nx=8, int ny=8, int nz=8) const
3D visualization via OpenDX.
const Vector_divfree curl() const
The curl of this with respect to a (flat) Metric .
const Scalar & potential(const Metric &) const
Returns the potential in the Helmholtz decomposition.
void set_vr_mu(const Scalar &vr_i, const Scalar &mu_i)
Sets the angular potentials (see member p_mu ), and the component of the vector.
Vector poisson_neumann(double lambda, const Valeur &limit_vr, const Valeur &limit_vt, const Valeur &limit_vp, int num_front) const
Solves the vector Poisson equation with *this as a source with a boundary condition on the excised sp...
Coefficients storage for the multi-domain spectral method.
int get_dim(int i) const
Gives the i th dimension (ie {tt dim.dim[i] )
virtual const Scalar & mu() const
Gives the field such that the angular components of the vector are written: .
void sol_Dirac_A_1z(const Scalar &aaa, Scalar &eta, Scalar &vr, const Param *par_bc=0x0) const
Solves a one-domain system of two-coupled first-order PDEs obtained from the divergence-free conditio...
Scalar * p_eta
Field such that the angular components of the vector are written: .
const Scalar & operator()(int) const
Readonly access to a component.
void set_vr_eta_mu(const Scalar &vr_i, const Scalar &eta_i, const Scalar &mu_i)
Defines the components through , and .
virtual ~Vector()
Destructor.
Class intended to describe valence-2 symmetric tensors.
void sol_Dirac_A_tau(const Scalar &aaa, Scalar &eta, Scalar &vr, const Param *par_bc=0x0) const
Solves via a tau method a system of two-coupled first-order PDEs obtained from the divergence-free co...
void set_A_mu(const Scalar &A_i, const Scalar &mu_i, const Param *par_bc)
Defines the components through potentials and .
void sol_Dirac_A_poisson(const Scalar &aaa, Scalar &eta, Scalar &vr, const Param *par_bc=0x0) const
Solves via a poisson method a system of two-coupled first-order PDEs obtained from the divergence-fre...
virtual void pseudo_spectral_base()
Sets the standard spectal bases of decomposition for each component for a pseudo_vector.