| version 1.5 | version 1.6 |
|---|
| |
| ) | ) |
| } | } |
| #elif VDW_SWITCH_MODE == VDW_SWITCH_MODE_MARTINI | #elif VDW_SWITCH_MODE == VDW_SWITCH_MODE_MARTINI |
| #if 0 | |
| { int vdw_switch_mode_martini; } // for preprocessor debugging only | { int vdw_switch_mode_martini; } // for preprocessor debugging only |
| float vdw_d = A * table_four_i[0] - B * table_four_i[4]; | |
| float vdw_c = A * table_four_i[1] - B * table_four_i[5]; | |
| float vdw_b = A * table_four_i[2] - B * table_four_i[6]; | |
| float vdw_a = A * table_four_i[3] - B * table_four_i[7]; | |
| ENERGY( | |
| register float vdw_val = | |
| ( ( diffa * vdw_d * (1/6.)+ vdw_c * (1/4.)) * diffa + vdw_b *(1/2.)) * diffa + vdw_a; | |
| vdwEnergy -= LAM(lambda_pair *) vdw_val; | |
| ) | |
| #else | |
| float vdw_b = 0.f; | float vdw_b = 0.f; |
| #endif | { |
| | const float r = r2 * r_1; |
| | const float r12 = (r-switchOn_f)*(r-switchOn_f); |
| | const float r13 = (r-switchOn_f)*(r-switchOn_f)*(r-switchOn_f); |
| | |
| | ENERGY( |
| | const float LJshifttempA = -(1.f/3.f)*A12_f*r13 - (1.f/4.f)*B12_f*r12*r12 - C12_f; |
| | const float LJshifttempB = -(1.f/3.f)*A6_f*r13 - (1.f/4.f)*B6_f*r12*r12 - C6_f; |
| | const float shiftValA = ( r > switchOn_f ? LJshifttempA : -C12_f); |
| | const float shiftValB = ( r > switchOn_f ? LJshifttempB : -C6_f); |
| | ) |
| | |
| | const float LJdshifttempA = -A12_f*r12 - B12_f*r13; |
| | const float LJdshifttempB = -A6_f*r12 - B6_f*r13; |
| | const float dshiftValA = ( r > switchOn_f ? LJdshifttempA*0.5f*r_1 : 0 ); |
| | const float dshiftValB = ( r > switchOn_f ? LJdshifttempB*0.5f*r_1 : 0 ); |
| | |
| | const float r_6 = r_2 * r_2 * r_2; |
| | const float r_12 = r_6 * r_6; |
| | |
| | ENERGY( |
| | const float vdwa_energy = r_12 + shiftValA; |
| | const float vdwb_energy = r_6 + shiftValB; |
| | ) |
| | |
| | const float vdwa_gradient = -6.f * r_2 * r_12 + dshiftValA ; |
| | const float vdwb_gradient = -3.f * r_2 * r_6 + dshiftValB; |
| | |
| | vdw_b = -2.f * ( A * vdwa_gradient - B * vdwb_gradient ); |
| | ENERGY( |
| | vdwEnergy += A * vdwa_energy - B * vdwb_energy; |
| | ) |
| | } |
| #elif VDW_SWITCH_MODE == VDW_SWITCH_MODE_ENERGY | #elif VDW_SWITCH_MODE == VDW_SWITCH_MODE_ENERGY |
| { int vdw_switch_mode_energy; } // for preprocessor debugging only | { int vdw_switch_mode_energy; } // for preprocessor debugging only |
| float vdw_b = 0.f; | float vdw_b = 0.f; |