MPQC_ChemistryOpt_CoordinateModel_Impl.hh

00001 // 
00002 // File:          MPQC_ChemistryOpt_CoordinateModel_Impl.hh
00003 // Symbol:        MPQC.ChemistryOpt_CoordinateModel-v0.2
00004 // Symbol Type:   class
00005 // Babel Version: 0.10.2
00006 // Description:   Server-side implementation for MPQC.ChemistryOpt_CoordinateModel
00007 // 
00008 // WARNING: Automatically generated; only changes within splicers preserved
00009 // 
00010 // babel-version = 0.10.2
00011 // 
00012 
00013 #ifndef included_MPQC_ChemistryOpt_CoordinateModel_Impl_hh
00014 #define included_MPQC_ChemistryOpt_CoordinateModel_Impl_hh
00015 
00016 #ifndef included_sidl_cxx_hh
00017 #include "sidl_cxx.hh"
00018 #endif
00019 #ifndef included_MPQC_ChemistryOpt_CoordinateModel_IOR_h
00020 #include "MPQC_ChemistryOpt_CoordinateModel_IOR.h"
00021 #endif
00022 // 
00023 // Includes for all method dependencies.
00024 // 
00025 #ifndef included_Chemistry_QC_Model_hh
00026 #include "Chemistry_QC_Model.hh"
00027 #endif
00028 #ifndef included_MPQC_ChemistryOpt_CoordinateModel_hh
00029 #include "MPQC_ChemistryOpt_CoordinateModel.hh"
00030 #endif
00031 #ifndef included_gov_cca_CCAException_hh
00032 #include "gov_cca_CCAException.hh"
00033 #endif
00034 #ifndef included_gov_cca_Services_hh
00035 #include "gov_cca_Services.hh"
00036 #endif
00037 #ifndef included_sidl_BaseInterface_hh
00038 #include "sidl_BaseInterface.hh"
00039 #endif
00040 #ifndef included_sidl_ClassInfo_hh
00041 #include "sidl_ClassInfo.hh"
00042 #endif
00043 
00044 
00045 // DO-NOT-DELETE splicer.begin(MPQC.ChemistryOpt_CoordinateModel._includes)
00046 #include <Chemistry_MoleculeViewer.hh>
00047 #include <Chemistry_QC_ModelFactory.hh>
00048 #include <chemistry/molecule/coor.h>
00049 #include "CoordinateModel.h"
00050 #include "Chemistry_Chemistry_Molecule.hh"
00051 #include "cca.h"
00052 #include "dc/babel/babel-cca/server/ccaffeine_TypeMap.hh"
00053 #include "dc/babel/babel-cca/server/ccaffeine_ports_PortTranslator.hh"
00054 #include "util/IO.h"
00055 #include "jc++/jc++.h"
00056 #include "jc++/util/jc++util.h"
00057 #include "parameters/parametersStar.h"
00058 #include "port/portInterfaces.h"
00059 #include "port/supportInterfaces.h"
00060 // DO-NOT-DELETE splicer.end(MPQC.ChemistryOpt_CoordinateModel._includes)
00061 
00062 namespace MPQC { 
00063 
00067   class ChemistryOpt_CoordinateModel_impl
00068   // DO-NOT-DELETE splicer.begin(MPQC.ChemistryOpt_CoordinateModel._inherits)
00069   : public CcaChemGeneric::CoordinateModel
00070 
00118   // DO-NOT-DELETE splicer.end(MPQC.ChemistryOpt_CoordinateModel._inherits)
00119   {
00120 
00121   private:
00122     // Pointer back to IOR.
00123     // Use this to dispatch back through IOR vtable.
00124     ChemistryOpt_CoordinateModel self;
00125 
00126     // DO-NOT-DELETE splicer.begin(MPQC.ChemistryOpt_CoordinateModel._implementation)
00127     gov::cca::Services services_;
00128     CcaChemGeneric::CoordinateModel genericModel_;
00129     Chemistry::QC::Model model_;
00130     Chemistry::Chemistry_Molecule molecule_;
00131     sc::Ref<sc::MolecularCoor> scCoor_;
00132     sc::Ref<sc::Molecule> scMol_;
00133     sc::Ref<sc::SCMatrixKit> kit_;
00134     sc::Ref<sc::SCMatrixKit> rkit_;
00135     sc::RefSymmSCMatrix ihess_;
00136     DoubleParameter *grad_rms_, *grad_max_, *disp_rms_, *disp_max_;
00137     BoolParameter *multiple_guess_h_, *use_current_geom_;
00138     StringParameter *coordinates_;
00139     StringParameter *extra_bonds_;
00140     double convFrom_;
00141     bool have_guess_h_;
00142     enum {cart,symm,redund};
00143     int coorType_;
00144     int numCoor_;
00145     int natom3_;
00146 
00147     ConfigurableParameterPort* 
00148     setup_parameters(ConfigurableParameterFactory *);
00149     
00150     void draw();
00151     // DO-NOT-DELETE splicer.end(MPQC.ChemistryOpt_CoordinateModel._implementation)
00152 
00153   private:
00154     // private default constructor (required)
00155     ChemistryOpt_CoordinateModel_impl() 
00156     {} 
00157 
00158   public:
00159     // sidl constructor (required)
00160     // Note: alternate Skel constructor doesn't call addref()
00161     // (fixes bug #275)
00162     ChemistryOpt_CoordinateModel_impl( struct 
00163       MPQC_ChemistryOpt_CoordinateModel__object * s ) : self(s,
00164       true) { _ctor(); }
00165 
00166     // user defined construction
00167     void _ctor();
00168 
00169     // virtual destructor (required)
00170     virtual ~ChemistryOpt_CoordinateModel_impl() { _dtor(); }
00171 
00172     // user defined destruction
00173     void _dtor();
00174 
00175     // static class initializer
00176     static void _load();
00177 
00178   public:
00179 
00180 
00186     int32_t
00187     initialize() throw () 
00188     ;
00189 
00194     int32_t
00195     finalize() throw () 
00196     ;
00197 
00204     void
00205     set_model (
00206       /* in */ ::Chemistry::QC::Model model
00207     )
00208     throw () 
00209     ;
00210 
00211 
00216     ::Chemistry::QC::Model
00217     get_model() throw () 
00218     ;
00219 
00224     int32_t
00225     get_n_coor() throw () 
00226     ;
00227 
00233     ::sidl::array<double>
00234     get_coor() throw () 
00235     ;
00236 
00247     double
00248     get_energy (
00249       /* in */ ::sidl::array<double> x
00250     )
00251     throw () 
00252     ;
00253 
00254 
00266     ::sidl::array<double>
00267     get_gradient (
00268       /* in */ ::sidl::array<double> x
00269     )
00270     throw () 
00271     ;
00272 
00273 
00285     ::sidl::array<double>
00286     get_hessian (
00287       /* in */ ::sidl::array<double> x
00288     )
00289     throw () 
00290     ;
00291 
00292 
00306     void
00307     get_energy_and_gradient (
00308       /* in */ ::sidl::array<double> x,
00309       /* out */ double& f,
00310       /* in */ ::sidl::array<double> g
00311     )
00312     throw () 
00313     ;
00314 
00315 
00327     void
00328     guess_hessian_solve (
00329       /* in */ ::sidl::array<double> effective_grad,
00330       /* in */ ::sidl::array<double> effective_step,
00331       /* in */ void* first_geom
00332     )
00333     throw () 
00334     ;
00335 
00336 
00342     void
00343     checkConvergence (
00344       /* inout */ int32_t& flag
00345     )
00346     throw () 
00347     ;
00348 
00349 
00356     void
00357     monitor() throw () 
00358     ;
00359 
00377     void
00378     setServices (
00379       /* in */ ::gov::cca::Services services
00380     )
00381     throw ( 
00382       ::gov::cca::CCAException
00383     );
00384 
00385   };  // end class ChemistryOpt_CoordinateModel_impl
00386 
00387 } // end namespace MPQC
00388 
00389 // DO-NOT-DELETE splicer.begin(MPQC.ChemistryOpt_CoordinateModel._misc)
00390 // Put miscellaneous things here...
00391 // DO-NOT-DELETE splicer.end(MPQC.ChemistryOpt_CoordinateModel._misc)
00392 
00393 #endif

Generated at Mon Dec 3 23:23:39 2007 for MPQC 2.3.1 using the documentation package Doxygen 1.5.2.