Index

C++ Code Documentation

cmclab::kernel::Lab

Derived from: protected lab::kernel::Lab , ::cmclab::ui::Ui

File: LAB/cmclab/kernel/Lab.H

Lab base class for computing constant mean curvature surfaces. Class 'cmclab_base' together with class 'cmclab' constitute the Lab computer. Class 'cmclab_base' manages the computational routines. Class 'cmclab', which derives from class 'cmclab_base' provides user interface.

public:
  • Lab();
    constructor
  • virtual ~Lab();
    destructor
  • virtual parser::KeyParser const &data() const;
  • virtual parser::KeyParser &data();
  • void set_state_from_data();
    Read and internalize 'mdata' Return error status
  • enum GeometryType;
  • virtual void set_lambda_R3( Real lambda );
  • virtual void set_lambda_S3( Real lambda0, Real lambda1 );
  • virtual void set_lambda_H3( Complex const &lambda );
  • void set_normalshift( Real x );
  • void set_mean_curvature( Real x );
  • virtual char const *lab_name() const;
  • virtual char const *about_info() const;
  • virtual char const *env_lib_path() const;
  • virtual char const *env_help_url() const;
protected:
  • void initial_condition( Complex const &z, base::String const &x );
    Set the initial condition for the CMC initial value problem. 'z' is the basepoint in the domain, the whence integration starts. 'x' is the initial value for the ODE at 'z'.
  • void integrator_count( uint x );
  • uint integrator_count() const;
  • void initial_integrator_count( uint x );
  • uint initial_integrator_count() const;
  • void polynomial_length( uint x );
  • uint polynomial_length() const;
  • void basis_length( uint x );
  • uint basis_length() const;
  • void iwasawa_method( int x );
    Iwasawa decomposition method 0 = cholesky 1 = QR
  • uint iwasawa_method() const;
  • void one_column( bool x );
  • bool one_column() const;
  • void birkhoff( bool x );
  • uint birkhoff() const;
  • static Complex exp2pii( Real r );
  • EvalLoop _potential;
    object for computing the potential
  • Complex _zstart;
    initial point in domain
  • EvalLoop _xstart;
    initial value for Phi
private:
  • virtual void cleanup_on_stop();
  • void cleanup();
  • virtual void set_ui_from_data();
  • virtual void set_data_from_ui();
  • virtual base::String const &domain();
  • virtual void load_surface();
  • void initialize();
  • Data _data;
  • typedef std::pair<Complex,Complex > complexPair;
    typedef used by set_initial_condition() and initial_condition().
  • void initialize_data();
    reset internal parameters
  • virtual Complex zstart_v() const;
  • virtual void start_all_v( uint vertex_count, uint edge_count, uint thread_count );
  • virtual void end_all_v( uint vertex_count, uint edge_count, uint thread_count);
  • virtual void start_v( Complex const &z0, uint k0, uint thread_id );
    initial integration step (called by Domain1::start() )
  • virtual void step_v( Complex const &z0, Complex const &z1, uint k0, uint k1, uint thread_id );
    single intermediate integration step (called by Domain1::step() )
  • virtual void end_v();
  • void compute_segment( Complex &z, Complex const &dz, Potential &xi, Loop4 &X, Loop4 &F, Real &metric, uint steps, uint thread_id );
    subroutine to compute one integration/Iwasawa step
  • virtual void export_fn_v( base::vector<Real> &v, uint k );
    single Sym step
  • uint _integrator_count;
    number of fourth-order Runge-Kutta steps to take for each edge of the domain mesh
  • uint _initial_integrator_count;
    number of fourth-order Runge-Kutta steps to take for the initial step
  • uint _polylen;
    length of loop fourier series
  • uint _basislen;
    basis size for Iwasawa decomposition
  • uint _verbosity;
    whether to spew extra data (currently has no effect)
  • struct MultiOp;
    multithread computational tool data type
  • base::vector<MultiOp> _multiop;
    multithread computational tool
  • struct MultiData;
  • Complex z;
    CMC loopgroup data: the point z in the domain
  • Loop4 X;
    CMC loopgroup data: Phi
  • Potential xi;
    CMC loopgroup data: the potential
  • Loop4 F;
    CMC loopgroup data: the extended frame
  • Real metric;
    CMC loopgroup data: the metric
  • void dump( std::ostream & ) const;
  • };
  • base::vector<MultiData> _multidata;
  • Real _lambda_R3;
    '_lambda_family' is a real number in [0,1]; the actual lambda family parameter is exp(2 pi i _lambda_family)
  • Real _lambda0_S3;
  • Real _lambda1_S3;
  • Complex _lambda_H3;
  • Complex _lambda0;
    used internally in compute()
  • Complex _lambda1;
    used internally in compute()
  • GeometryType _geometry;
  • Real _normalshift;
  • Real _mean_curvature;
  • int _iwasawa_method;
  • bool _one_column;
  • bool _birkhoff;
  • Sym _sym;
  • static char const *_about_info;
  • Lab( Lab const & );
    disabled copy constructor
  • Lab &operator=( Lab const & );
    disabled assignment operator


cmclab::kernel::Lab GANG