本文整理汇总了Python中NN.calc_ef_from_bases方法的典型用法代码示例。如果您正苦于以下问题:Python NN.calc_ef_from_bases方法的具体用法?Python NN.calc_ef_from_bases怎么用?Python NN.calc_ef_from_bases使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NN
的用法示例。
在下文中一共展示了NN.calc_ef_from_bases方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: func
# 需要导入模块: import NN [as 别名]
# 或者: from NN import calc_ef_from_bases [as 别名]
def func(x,*args):
"""evaluate function L=sum_{samples}[E(pmd)-E(ref)]^2.
This will be called from scipy.optimize.fmin_cg().
The 1st argument x should be 1-D array of variables.
"""
global _valmin
t0= time.time()
#.....write parameters to in.params.????? file
dir= args[0]
if fmethod in ('test','TEST','check_grad') or \
not potential in ('linreg','NN'):
#.....store original file
os.system('cp '+dir+'/'+parfile+' '+dir+'/'+parfile+'.tmp')
write_params(dir+'/'+parfile,x)
#.....run smd in all sample directories
os.chdir(dir)
#print os.getcwd(),dir
if runmode in ('serial','Serial','SERIAL','sequential','single'):
os.system('./serial_run_smd.sh '+parfile)
elif runmode in ('parallel','Parallel','PARALLEL'):
os.system('python ./parallel_run_smd.py '+parfile)
else:
print "{0:*>20}: no such run_mode !!!".format(' Error', runmode)
exit()
os.chdir(cwd)
#.....restore original file
os.system('cp '+dir+'/'+parfile+' '+dir+'/'+parfile+'.current')
os.system('cp '+dir+'/'+parfile+'.tmp'+' '+dir+'/'+parfile)
#.....gather smd results
ergs,frcs=gather_smd_data(dir)
elif potential in ('linreg'):
#.....calc ergs and frcs from bases data and x (variables)
read_bases(dir)
ergs,frcs=calc_ef_from_bases(x,*args)
elif potential in ('NN'):
#.....now it is possible to compute only from bases
ergs,frcs= NN.calc_ef_from_bases(x,*args)
#.....calc function value of L
val= eval_L(ergs,frcs,ergrefs,frcrefs,samples)
#.....output temporal results
output_energy_relation(ergs,ergrefs,samples,sample_dirs, \
fname='out.erg.pmd-vs-dft.tmp')
output_force_relation(frcs,frcrefs,samples,sample_dirs, \
fname='out.frc.pmd-vs-dft.tmp')
print
print ' L value=',val
if penalty in ('ridge','Ridge','RIDGE') and potential in ('linreg'):
p= 0.0
lx= len(x)
for n in range(lx):
p += math.sqrt(x[n]**2)
print ' penalty value=',p*pweight
val += p*pweight
print ' total L value=',val
elif penalty in ('lasso','LASSO') and potential in ('linreg'):
p= 0.0
lx= len(x)
for n in range(lx):
p += abs(x[n])
print ' penalty value=',p*pweight
val += p*pweight
print ' total L value=',val
sys.stdout.flush()
#.....if L value is minimum ever, store this parameter file
if val < _valmin:
_valmin= val
if potential in ('linreg','NN'):
write_params(dir+'/'+parfile+'.min',x)
else:
os.system('cp '+dir+'/'+parfile+'.current' \
+' '+dir+'/'+parfile+'.min')
print ' ===> time func: {0:12.3f} sec'.format(time.time()-t0) \
+', {0:12.3f} sec'.format(time.time()-_init_time)
return val
示例2: in
# 需要导入模块: import NN [as 别名]
# 或者: from NN import calc_ef_from_bases [as 别名]
#.....read bases data if needed
if potential in ('linreg') and not fmethod in ('test','TEST'):
read_bases(maindir)
if regularize:
vars= scale_vars(vars,bmax)
elif potential in ('NN') and not fmethod in ('test','TEST'):
NN.init(maindir,params,sample_dirs,samples,nprcs,fmatch \
,ergrefs,frcrefs,fmethod,parfile,runmode,rcut,pranges \
,vranges)
#.....1st call of func
func(vars,maindir)
if potential in ('linreg') and not fmethod in ('test','TEST'):
ergs,frcs= calc_ef_from_bases(vars,maindir)
elif potential in ('NN') and not fmethod in ('test','TEST'):
ergs,frcs= NN.calc_ef_from_bases(vars)
else:
ergs,frcs= gather_smd_data(maindir)
if fmethod in ('test','TEST') and potential in ('NN'):
NN.init(maindir,params,sample_dirs,samples,nprcs,fmatch \
,ergrefs,frcrefs,fmethod,parfile,runmode \
,rcut,pranges,vranges)
output_energy_relation(ergs,ergrefs,samples,sample_dirs,fname='out.erg.pmd-vs-dft.ini')
output_force_relation(frcs,frcrefs,samples,sample_dirs,fname='out.frc.pmd-vs-dft.ini')
if fmethod in ('cg','CG','conjugate-gradient'):
print '>>>>> conjugate-gradient was selected.'
if gradient in ('numerical'):
solution= opt.fmin_cg(func,vars,args=(maindir,)