当前位置: 首页>>代码示例>>C++>>正文


C++ DrudeForce::updateParametersInContext方法代码示例

本文整理汇总了C++中DrudeForce::updateParametersInContext方法的典型用法代码示例。如果您正苦于以下问题:C++ DrudeForce::updateParametersInContext方法的具体用法?C++ DrudeForce::updateParametersInContext怎么用?C++ DrudeForce::updateParametersInContext使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在DrudeForce的用法示例。


在下文中一共展示了DrudeForce::updateParametersInContext方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: testChangingParameters

void testChangingParameters() {
    const double k = ONE_4PI_EPS0*1.5;
    const double charge = 0.1;
    const double alpha = ONE_4PI_EPS0*charge*charge/k;
    Platform& platform = Platform::getPlatformByName("OpenCL");
    
    // Create the system.
    
    System system;
    system.addParticle(1.0);
    system.addParticle(1.0);
    DrudeForce* drude = new DrudeForce();
    drude->addParticle(1, 0, -1, -1, -1, charge, alpha, 1, 1);
    system.addForce(drude);
    vector<Vec3> positions(2);
    positions[0] = Vec3(-1, 0, 0);
    positions[1] = Vec3(2, 0, 0);
    
    // Check the energy.
    
    VerletIntegrator integ(1.0);
    Context context(system, integ, platform);
    context.setPositions(positions);
    State state = context.getState(State::Energy);
    ASSERT_EQUAL_TOL(0.5*k*3*3, state.getPotentialEnergy(), 1e-5);
    
    // Modify the parameters.
    
    const double k2 = ONE_4PI_EPS0*2.2;
    const double charge2 = 0.3;
    const double alpha2 = ONE_4PI_EPS0*charge2*charge2/k2;
    drude->setParticleParameters(0, 1, 0, -1, -1, -1, charge2, alpha2, 1, 1);
    drude->updateParametersInContext(context);
    state = context.getState(State::Energy);
    ASSERT_EQUAL_TOL(0.5*k2*3*3, state.getPotentialEnergy(), 1e-5);
}
开发者ID:ChayaSt,项目名称:openmm,代码行数:36,代码来源:TestOpenCLDrudeForce.cpp


注:本文中的DrudeForce::updateParametersInContext方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。