Exemplo n.º 1
0
void
formulaFromSMILES( const char * smiles )
{
    std::ofstream of( "output.txt" );
    of << "formulaFromSMILES(" << smiles << ")" << std::endl;
    
    if ( auto mol = std::unique_ptr< RDKit::ROMol >( RDKit::SmilesToMol( smiles, 0, false ) ) ) {
        mol->updatePropertyCache( false );
        auto formula = RDKit::Descriptors::calcMolFormula( *mol, true, false );

        of << "formula: " << formula << std::endl;
        WSPutString( stdlink, formula.c_str() );        
    }
}
Exemplo n.º 2
0
Arquivo: matrix.c Projeto: kogn/scft
void getmatrix(int bw, double alpha, double beta, double kappa, double tau,
    fftw_complex * gamma, double dt, fftw_complex *matrix, fftw_complex *matrix1)
{
  int l;
  init_and_openlink();

  WSPutFunction( lp, "EnterTextPacket", 1L);
  WSPutString(lp,"Get[\"src/matrix.m\"]");
  WSEndPacket(lp);
  for(l = 0; l<bw; l++)
  {
      WSPutFunction( lp, "EvaluatePacket", 1L);{
          WSPutFunction( lp, "matrix", 7L);{
              WSPutInteger( lp, l);
              WSPutReal64( lp, alpha);
              WSPutReal64( lp, beta);
              WSPutReal64( lp, kappa);
              WSPutReal64( lp, tau);
              WSPutReal64( lp, dt*gamma[0][0]);
              WSPutReal64( lp, dt*gamma[0][1]);
          }}WSEndPacket( lp);

    skip_packets(lp);

    double * data; 
    int *dims;
    char **heads;
    int d;
    WSGetReal64Array(lp, &data,&dims,&heads,&d);

    memcpy(matrix+totalCoeffs_so3(l),data,sizeof(fftw_complex)*(2*l+1)*(2*l+1));
    WSReleaseReal64Array(lp,data,dims,heads,d);
  }
  for(l = 0; l<bw; l++)
  {
    WSPutFunction( lp, "EvaluatePacket", 1L);
    WSPutFunction( lp, "matrix", 7L);
    WSPutInteger( lp, l);
    WSPutReal64( lp, alpha);
    WSPutReal64( lp, beta);
    WSPutReal64( lp, kappa);
    WSPutReal64( lp, tau);
    WSPutReal64( lp, dt*gamma[1][0]);
    WSPutReal64( lp, dt*gamma[1][1]);
    WSEndPacket( lp);

    skip_packets(lp);

    double * data; 
    int *dims;
    char **heads;
    int d;
    WSGetReal64Array(lp, &data,&dims,&heads,&d);

    memcpy(matrix1+totalCoeffs_so3(l),data,sizeof(fftw_complex)*(2*l+1)*(2*l+1));
    WSReleaseReal64Array(lp,data,dims,heads,d);
  }
  WSPutFunction( lp, "Exit", 0L);

  return;
}
Exemplo n.º 3
0
void
standardFormula( const char * formula )
{
    auto result = adcontrols::ChemicalFormula::standardFormula( formula );
    WSPutString( stdlink, result.c_str() );
}