X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;ds=sidebyside;f=django_simple%2Ftodo%2Fviews.py;h=d38312f539f334e1290069472cd3739cf985e45e;hb=945a3be3d25aa78881674906c116fe48002efe81;hp=8ad50605a3dd3dbec10f7cb3a698101a8c17bb98;hpb=d82a989eec06a167258ff6d644dd77292310ddda;p=django_unres.git diff --git a/django_simple/todo/views.py b/django_simple/todo/views.py index 8ad5060..d38312f 100644 --- a/django_simple/todo/views.py +++ b/django_simple/todo/views.py @@ -292,6 +292,7 @@ def add_md(request,task_id): task.md_start=form.cleaned_data["md_start"] task.md_temp=form.cleaned_data["md_temp"] task.md_nstep=form.cleaned_data["md_nstep"] + task.md_total_steps=task.md_nstep basename = str(task.owner) suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S") @@ -380,6 +381,7 @@ def add_md_a(request,task_id): task.md_temp=form.cleaned_data["md_temp"] task.md_nstep=form.cleaned_data["md_nstep"] + task.md_total_steps=task.md_nstep task.md_ntwe=form.cleaned_data["md_ntwe"] task.md_ntwx=form.cleaned_data["md_ntwx"] task.md_dt=form.cleaned_data["md_dt"] @@ -452,6 +454,7 @@ def add_remd(request,task_id): task.md_seed=form.cleaned_data["md_seed"] task.md_nstep=form.cleaned_data["md_nstep"] + task.md_total_steps=task.md_nstep if any(c.islower() for c in seq): task.md_respa=False @@ -669,6 +672,7 @@ def add_remd_a(request,task_id): task.md_seed=form.cleaned_data["md_seed"] task.md_nstep=form.cleaned_data["md_nstep"] + task.md_total_steps=task.md_nstep task.md_dt=form.cleaned_data["md_dt"] task.md_lang=form.cleaned_data["md_lang"] task.md_tau=form.cleaned_data["md_tau"] @@ -900,6 +904,67 @@ def details1(request,user_id,task_id): def delete(request, task_id): Task.objects.get(id=task_id).delete() return redirect('/') + +@login_required +def restart(request, task_id): + task = get_object_or_404(Task, id=task_id) + restart0(task) + return redirect('/') + +def add_restart_inp(): + with open('file.inp','r') as f1, open ('file.inp.tmp','w') as f2: + for line in f1: + if 'reset_vel=' in line: + f2.write('{:79}'.format('restart'+line[7:])) + else: + f2.write(line) + os.remove('file.inp') + os.rename('file.inp.tmp','file.inp') + return + +def restart0(task): + if os.path.isfile(task.jobdirname+'/finished'): + os.remove(task.jobdirname+'/finished') + task.running =1 + task.done=False + task.md_total_steps = task.md_total_steps+task.md_nstep + task.save() + if task.type == 'md': + os.chdir(task.jobdirname) + add_restart_inp() + ret_code = subprocess.Popen(' /opt/torque/bin/qsub pbs.csh', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + os.chdir('..') + elif task.type == 'remd': + os.chdir(task.jobdirname) + add_restart_inp() + tmp1=json.loads(task.remd_multi_m) + nreplicas=sum(map(int, tmp1)) + with open('file_wham.inp','r') as f1, open ('file_wham.tmp','w') as f2: + for line in f1: + if 'rec_end=' in line: + rec=task.md_total_steps/task.md_ntwx + f2.write('nfile_cx=1 rec_start='+str(rec/10) + +' rec_end='+str(rec)+' totraj='+str(nreplicas)+'\n') + elif 'isampl=' in line: + if task.md_total_steps/task.md_ntwx*nreplicas<=8000: + isampl=1 + else: + isampl=int(task.md_total_steps/task.md_ntwx*nreplicas/8000) + f2.write('{:79}'.format(' isampl='+str(isampl))+'&\n') + else: + f2.write(line) + os.remove('file_wham.inp') + os.rename('file_wham.tmp','file_wham.inp') + ret_code = subprocess.Popen(' /opt/torque/bin/qsub pbs8.csh', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + os.chdir('..') + return + +def restart1(request, user_id, task_id): + task = get_object_or_404(Task, id=task_id) + user = task.owner + restart0(task) + return redirect('/details1/'+str(user)+'/'+str(task.id)+'/') + def refresh_done1(request, task_id): task = get_object_or_404(Task, id=task_id)