yurijanssen
Hi,
I have been trying to implement penalties, e.g. BVS based, or antibump based. (I use TOPAS v4.2). I can calculate a BVS sum, or an antibump-number, and I can choose whether or not to assign an associated penalty. I have used both atomic_interaction and grs_interaction to calculate e.g. a BVS sum, and I can manage to obtain the same sum for both keyword/functions. However, when I use penalties, the response is completely different!
With atomic_interaction, the penalty not only has a strong effect on the refinement, but unfortunately also results in very frequent exception_caught. With grs_interaction, and with the same weighting, the refinement is much less influenced, and it will only respond to penalties if the weighting is very substantially increased. The frequency of 'exception caught' is much lower for grs_interaction, though.
How does this work?
Yuri
A sniplet of the code I use looks like this:
.....
penalties_weighting_K1 100
.....
'calculate BVS for Fea2 site 'from the durham topas wiki '
grs_interaction qi 0 qj 0 Fea2 "Oa*" Fea2_val =
If(R < BVS_radius_Fe3, 0.5 (Exp(( BVS_R0_Fe3 -R)/ BVS_b_Fe3 ))/4,0);
'calculate anti_bump penalty for Fea2
grs_interaction qi 0 qj 0 Fea2 "Oa*" Fea2_bump = If(R < Bump_radius, 0.5 (R-Bump_radius)^2, 0);
.....
#ifdef PENALTYBVa2 penalty = val_weight ( Fea2_val-3)^2; #endif 'PENALTYBVa2
#ifdef PENALTYBa2 penalty = ab_weight * Fea2_bump; #endif 'PENALTYBa2
alancoelho
Check the value of ( BVS_R0_Fe3 -R)/ BVS_b_Fe3 ) in Exp(( BVS_R0_Fe3 -R)/ BVS_b_Fe3 )); the exception caught could be due to an exponential overflow. For example what's the value of BVS_b_Fe3.
Also, grs_interaction returns the electrostatic potential plus whatever is in the equation. For anti-bump only then use ai_anti_bump.
If you get stuck then send me your INP and data file and I will have a look.
alan
yurijanssen
Hi Alan,
Thanks for your reply. I do not think the exception caught is an exponential overflow, if I use atomic_interaction to calculate the same, I get the same number as a result. The point is that, when I use these numbers as penalties, I get exception caught for atomic_interaction, but not for grs_interaction.
I would like it if you could have a look, where should I send my inp and data?
Yuri