MPQC_ChemistryOpt_CoordinateModel_Impl.hh
//
// File: MPQC_ChemistryOpt_CoordinateModel_Impl.hh
// Symbol: MPQC.ChemistryOpt_CoordinateModel-v0.2
// Symbol Type: class
// Babel Version: 0.10.2
// Description: Server-side implementation for MPQC.ChemistryOpt_CoordinateModel
//
// WARNING: Automatically generated; only changes within splicers preserved
//
// babel-version = 0.10.2
//
#ifndef included_MPQC_ChemistryOpt_CoordinateModel_Impl_hh
#define included_MPQC_ChemistryOpt_CoordinateModel_Impl_hh
#ifndef included_sidl_cxx_hh
#include "sidl_cxx.hh"
#endif
#ifndef included_MPQC_ChemistryOpt_CoordinateModel_IOR_h
#include "MPQC_ChemistryOpt_CoordinateModel_IOR.h"
#endif
//
// Includes for all method dependencies.
//
#ifndef included_Chemistry_QC_Model_hh
#include "Chemistry_QC_Model.hh"
#endif
#ifndef included_MPQC_ChemistryOpt_CoordinateModel_hh
#include "MPQC_ChemistryOpt_CoordinateModel.hh"
#endif
#ifndef included_gov_cca_CCAException_hh
#include "gov_cca_CCAException.hh"
#endif
#ifndef included_gov_cca_Services_hh
#include "gov_cca_Services.hh"
#endif
#ifndef included_sidl_BaseInterface_hh
#include "sidl_BaseInterface.hh"
#endif
#ifndef included_sidl_ClassInfo_hh
#include "sidl_ClassInfo.hh"
#endif
// DO-NOT-DELETE splicer.begin(MPQC.ChemistryOpt_CoordinateModel._includes)
#include <Chemistry_MoleculeViewer.hh>
#include <Chemistry_QC_ModelFactory.hh>
#include <chemistry/molecule/coor.h>
#include "CoordinateModel.h"
#include "Chemistry_Chemistry_Molecule.hh"
#include "cca.h"
#include "dc/babel/babel-cca/server/ccaffeine_TypeMap.hh"
#include "dc/babel/babel-cca/server/ccaffeine_ports_PortTranslator.hh"
#include "util/IO.h"
#include "jc++/jc++.h"
#include "jc++/util/jc++util.h"
#include "parameters/parametersStar.h"
#include "port/portInterfaces.h"
#include "port/supportInterfaces.h"
// DO-NOT-DELETE splicer.end(MPQC.ChemistryOpt_CoordinateModel._includes)
namespace MPQC {
class ChemistryOpt_CoordinateModel_impl
// DO-NOT-DELETE splicer.begin(MPQC.ChemistryOpt_CoordinateModel._inherits)
: public CcaChemGeneric::CoordinateModel
// DO-NOT-DELETE splicer.end(MPQC.ChemistryOpt_CoordinateModel._inherits)
{
private:
// Pointer back to IOR.
// Use this to dispatch back through IOR vtable.
ChemistryOpt_CoordinateModel self;
// DO-NOT-DELETE splicer.begin(MPQC.ChemistryOpt_CoordinateModel._implementation)
gov::cca::Services services_;
CcaChemGeneric::CoordinateModel genericModel_;
Chemistry::QC::Model model_;
Chemistry::Chemistry_Molecule molecule_;
sc::Ref<sc::MolecularCoor> scCoor_;
sc::Ref<sc::Molecule> scMol_;
sc::Ref<sc::SCMatrixKit> kit_;
sc::Ref<sc::SCMatrixKit> rkit_;
sc::RefSymmSCMatrix ihess_;
DoubleParameter *grad_rms_, *grad_max_, *disp_rms_, *disp_max_;
BoolParameter *multiple_guess_h_, *use_current_geom_;
StringParameter *coordinates_;
StringParameter *extra_bonds_;
double convFrom_;
bool have_guess_h_;
enum {cart,symm,redund};
int coorType_;
int numCoor_;
int natom3_;
ConfigurableParameterPort*
setup_parameters(ConfigurableParameterFactory *);
void draw();
// DO-NOT-DELETE splicer.end(MPQC.ChemistryOpt_CoordinateModel._implementation)
private:
// private default constructor (required)
ChemistryOpt_CoordinateModel_impl()
{}
public:
// sidl constructor (required)
// Note: alternate Skel constructor doesn't call addref()
// (fixes bug #275)
ChemistryOpt_CoordinateModel_impl( struct
MPQC_ChemistryOpt_CoordinateModel__object * s ) : self(s,
true) { _ctor(); }
// user defined construction
void _ctor();
// virtual destructor (required)
virtual ~ChemistryOpt_CoordinateModel_impl() { _dtor(); }
// user defined destruction
void _dtor();
// static class initializer
static void _load();
public:
int32_t
initialize() throw ()
;
int32_t
finalize() throw ()
;
void
set_model (
/* in */ ::Chemistry::QC::Model model
)
throw ()
;
::Chemistry::QC::Model
get_model() throw ()
;
int32_t
get_n_coor() throw ()
;
::sidl::array<double>
get_coor() throw ()
;
double
get_energy (
/* in */ ::sidl::array<double> x
)
throw ()
;
::sidl::array<double>
get_gradient (
/* in */ ::sidl::array<double> x
)
throw ()
;
::sidl::array<double>
get_hessian (
/* in */ ::sidl::array<double> x
)
throw ()
;
void
get_energy_and_gradient (
/* in */ ::sidl::array<double> x,
/* out */ double& f,
/* in */ ::sidl::array<double> g
)
throw ()
;
void
guess_hessian_solve (
/* in */ ::sidl::array<double> effective_grad,
/* in */ ::sidl::array<double> effective_step,
/* in */ void* first_geom
)
throw ()
;
void
checkConvergence (
/* inout */ int32_t& flag
)
throw ()
;
void
monitor() throw ()
;
void
setServices (
/* in */ ::gov::cca::Services services
)
throw (
::gov::cca::CCAException
);
}; // end class ChemistryOpt_CoordinateModel_impl
} // end namespace MPQC
// DO-NOT-DELETE splicer.begin(MPQC.ChemistryOpt_CoordinateModel._misc)
// Put miscellaneous things here...
// DO-NOT-DELETE splicer.end(MPQC.ChemistryOpt_CoordinateModel._misc)
#endif