Bonjour,
Je rencontre un problème : je voudrais ne plus avoir du tout de parser (effacer le parser) et à la place, réécrire ce qu'il y avait dans le parser (c'est-à-dire tous les "group.add_argument(...)" ) en-dessous de la ligne "def run(args, job):"
Et donc, de les redéfinir et pouvoir en faire de vrais paramètres facile à tuner.
Seulement, à chaque fois, que j'efface un "group.add_argument(...)", par exemple, disons group.add_argument(X) pour l'effacer du parser et définir X après "def run(args, job):" j'obtiens inexorablement un message d'erreur :'( En fait, pour être plus précis, j'ai quand même réussi à le faire pour "group.add_argument(S2start)" mais par pour les autres "group.add_argument(...)".
Je remercie d'avance toute personne qui pourrait m'apporter sa précieuse aide car je coince vraiment
Voici la partie du code où je rencontre ces problèmes :
Code:def parser(): parser = tools.standard_parser() group = parser.add_argument_group( "experiment specific options" ) group.add_argument('--Mode', default='default', choices=['default', 'adjust']) group.add_argument('--im_param', type=str, default='') group.add_argument('--tend', type=float, default=700.) group.add_argument('--bc', default="noflux", choices=['noflux','Xper', 'Yper', 'XYper']) group.add_argument('--size', type=float, default=2.) group.add_argument('--monitor', type=float, nargs='?', const=15., default=None) return parser def jobID(args): today = date.today() return '{}_periodic_{}_np_{}_{}_{}'.format(today.isoformat(), args.tend, args.np, args.bc, args.size) @tools.example(parser, jobID) def run(args, job): S2start=85 imparam = 'S2_start=' + str(S2start) geom = mesh.Block(size=(args.size*10,args.size*10,0), periodic=0) meshname = mesh.generate(geom) IDs= [] if 'X' in args.bc : IDs.append(1000) if 'Y' in args.bc : IDs.append(1025) if IDs : gPer = [model.ConductivityRegion([0]), model.ConductivityRegion(IDs=[], name=None)] # définition du stimulus S1 edge = args.size*10000./2. S1 = [model.Stimulus( 'S1', x0=-edge-1, y0=-edge+198, xd=edge*2+2, yd=400, strength=80,duration=2, start=0)] S2start=85 # if args.S2start>=0 : S1.append( model.Stimulus( 'S2', x0=-edge, y0=-edge, xd=edge, yd=edge, strength=80, duration=2, start=args.S2start) ) if 'X' in args.bc : S1.append(model.Stimulus( 'Xblock', x0=-edge-1, y0=-edge-1, xd=2, yd=edge*2+2, strength=args.block_Vm, duration=args.block_dur, stimtype=9, tau_edge=0, tau_plateau=1.0e6)) if 'Y' in args.bc : S1.append(model.Stimulus( 'Yblock', x0=-edge-1, y0=-edge-1, xd=edge*2+2, yd=2, strength=args.block_Vm, duration=args.block_dur, stimtype=9, tau_edge=0, tau_plateau=1.0e6)) cmd = tools.carp_cmd() + [ '-simID', job.ID ] cmd += model.optionlist(S1) if len(IDs) : cmd += model.optionlist(gPer) cmd = tools.carp_cmd('paramet.par') simid = job.ID + '/spir' writestatef = 'statefile' cmd += ['-meshname', meshname, '-tend', args.tend, '-size', 2, '-np', 4, '-monitor', 15, '-block-Vm', -86, '-block-dur', 0, '-dt', 25, '-spacedt', 1, # '-imp_region[0].im_param', str(args.im_param), '-ellip_use_pt', 0, #from here below, override default solver '-parab_options_file', ''] cmd += [ '-simID', simid, '-write_statef', writestatef, # '-imp_region[0].im_param', imparam, # '-tend', 1000.0, '-stimulus[0].start', 0, '-stimulus[1].start', 85.0, '-tend', args.tend, '-size', 2, '-np', 4, '-monitor', 15, '-block-Vm', -86, '-block-dur', 0, '-dt', 25, '-spacedt', 1, '-imp_region[0].im_param', 'ADPshorten*8', '-ellip_use_pt', 0, '-parab_options_file', ''] if args.visualize or args.monitor : # Prepare file paths geom = meshname data = os.path.join(job.ID, 'vm.igb') view = 'view.mshz' meshproc = job.meshalyzer(geom, data, view, monitor=args.monitor ) if args.monitor else None if args.visualize and not settings.platform.BATCH: job.meshalyzer(geom, data, view) if meshproc: meshproc.wait() if __name__ == '__main__': run()
-----