// Cantera includes #include "SurfPhase.h" #include "InterfaceKinetics.h" #include "ImplicitSurfChem.h" #include "Cabinet.h" #include "Storage.h" // Build as a DLL under Windows #ifdef WIN32 #define DLL_EXPORT __declspec(dllexport) #pragma warning(disable:4786) #pragma warning(disable:4503) #else #define DLL_EXPORT #endif // Values returned for error conditions #define ERR -999 #define DERR -999.999 //Cabinet* Cabinet::__storage = 0; //inline Surf1D* _surface(int i) { // return Cabinet::cabinet()->item(i); //} inline SurfPhase* _surfphase(int n) { return (SurfPhase*)Storage::__storage->__thtable[n]; } inline InterfaceKinetics* _surfkin(int n) { return (InterfaceKinetics*)Storage::__storage->__ktable[n]; } extern "C" { // int DLL_EXPORT surface_new(int ikin) { // InterfaceKinetics* sk = 0; // if (ikin > 0) sk = _surfkin(ikin); // Surf1D* s = new Surf1D(sk); // return Cabinet::cabinet()->add(s); // } // int DLL_EXPORT surface_del(int i) { // Cabinet::cabinet()->del(i); // return 0; // } int DLL_EXPORT surf_setsitedensity(int i, double s0) { _surfphase(i)->setSiteDensity(s0); return 0; } double DLL_EXPORT surf_sitedensity(int i) { return _surfphase(i)->siteDensity(); } int DLL_EXPORT surf_setcoverages(int i, double* c) { _surfphase(i)->setCoverages(c); return 0; } int DLL_EXPORT surf_setcoveragesbyname(int i, char* c) { _surfphase(i)->setCoveragesByName(string(c)); return 0; } int DLL_EXPORT surf_getcoverages(int i, double* c) { _surfphase(i)->getCoverages(c); return 0; } int DLL_EXPORT surf_setconcentrations(int i, double* c) { _surfphase(i)->setConcentrations(c); return 0; } int DLL_EXPORT surf_getconcentrations(int i, double* c) { _surfphase(i)->getConcentrations(c); return 0; } // int DLL_EXPORT surface_setcoverages(int i, double* c) { // _surface(i)->setCoverages(c); // return 0; // } }