You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
simulacion-permeabilidad/tools/generation/config.py

78 lines
1.6 KiB
Python

import numpy as np
import configparser
import json
def get_config(conffile):
parser = configparser.ConfigParser()
parser.read(conffile)
cons=json.loads(parser.get('Iterables',"connectivity"))
ps=json.loads(parser.get('Iterables',"p"))
lcs=json.loads(parser.get('Iterables',"lc"))
variances=json.loads(parser.get('Iterables',"variances"))
seeds=json.loads(parser.get('Iterables',"seeds"))
seeds=np.arange(seeds[0],seeds[1]+seeds[0])
ps=np.linspace(ps[0],ps[1],ps[2])/100
iterables=dict()
iterables['ps'] = ps
iterables['seeds'] = seeds
iterables['lcs'] = lcs
iterables['variances'] = variances
iterables['cons'] = cons
return parser, iterables
def DotheLoop(job,parser,iterables):
ps = iterables['ps']
seeds = iterables['seeds']
lcs = iterables['lcs']
variances = iterables['variances']
cons = iterables['cons']
if job==-1:
if parser.get('Generation','binary')=='yes':
if 0 not in cons:
njobs=len(ps)*len(cons)*len(seeds)*len(lcs)
else:
njobs=len(ps)*(len(cons)-1)*len(seeds)*len(lcs)+len(ps)*len(seeds)
else:
if 0 not in cons:
njobs=len(variances)*len(cons)*len(seeds)*len(lcs)
else:
njobs=len(variances)*(len(cons)-1)*len(seeds)*len(lcs)+len(variances)*len(seeds)
return njobs
i=0
for con in cons:
if con == 0:
llcs=[0.000001]
else:
llcs=lcs
for lc in llcs:
if parser.get('Generation','binary')=='yes':
for p in ps:
for seed in seeds:
if i==job:
return [con,lc,p,seed]
i+=1
else:
for v in variances:
for seed in seeds:
if i==job:
return [con,lc,v,seed]
i+=1
return []