"""Access and modify NRV Parameters."""importconfigparserimportosfrompathlibimportPathfrom._NRV_Mprocimport_proc_is_alone,_proc_labelfrom._NRV_SingletonimportNRV_singleton
[docs]classnrv_parameters(metaclass=NRV_singleton):""" A class for NRV parameters used to gather parameters """
[docs]def__init__(self):""" Initialize the class for parameters """iftype(self)innrv_parameters._instances:self=self._instances[type(self)]else:self.nrv_path=str(Path(os.path.dirname(__file__)).parent.absolute())self.dir_path=self.nrv_path+"/_misc"self.config_fname=self.dir_path+"/NRV.ini"self.load()
[docs]defsave(self):""" Saving the parameters """withopen(self.config_fname,"w")asconfigfile:self.machine_config.write(configfile)
[docs]defload(self,fname=None):""" Loading the parameters """iffnameisNone:fname=self.config_fnameself.machine_config=configparser.ConfigParser()self.machine_config.read(self.config_fname)# GMSHself.GMSH_Ncores=int(self.machine_config.get("GMSH","GMSH_CPU"))self.GMSH_Status=self.machine_config.get("GMSH","GMSH_STATUS")=="True"# nmodself.nmod_Ncores=int(self.machine_config.get("NRV","NMOD_CPU"))# optimself.optim_Ncores=int(self.machine_config.get("OPTIM","OPTIM_CPU"))# LOGself.LOG_Status=self.machine_config.get("LOG","LOG_STATUS")=="True"self.VERBOSITY_LEVEL=int(self.machine_config.get("LOG","VERBOSITY_LEVEL"))
[docs]defget_nrv_verbosity(self):""" get general verbosity level """returnself.VERBOSITY_LEVEL
[docs]defset_nrv_verbosity(self,i):""" set general verbosity level Parameters ---------- O: None 1: + Error 2: + Warning 3: + Info 4: + Debug NB: to add Debug verbosity to the log VERBOSITY_LEVEL has to be set to 4 """self.VERBOSITY_LEVEL=i
############################# Multi process parameters #############################@propertydefis_alone(self):return_proc_is_alone@propertydefproc_label(self):return_proc_label
[docs]defget_gmsh_ncore(self):""" get gmsh core number """returnself.GMSH_Ncores
[docs]defset_gmsh_ncore(self,n:int):""" set gmsh core number """self.GMSH_Ncores=n
[docs]defget_nmod_ncore(self):""" get nmod core number """returnself.nmod_Ncores
[docs]defset_nmod_ncore(self,n:int):""" set nmod core number """self.nmod_Ncores=n
[docs]defget_optim_ncore(self):""" get optim core number """returnself.optim_Ncores
[docs]defset_optim_ncore(self,n:int):""" set optim core number """self.optim_Ncores=n
[docs]defset_ncores(self,n_nrv:int=None,n_nmod:int=None,n_gmsh:int=None,n_optim:int=None):""" set for all subpakages core number Parameters ---------- n_nmod : int, optional _description_, by default None n_gmsh : int, optional _description_, by default None n_optim : int, optional _description_, by default None """ifn_nrvisnotNone:n_nmod=n_nrvn_gmsh=n_nrvn_optim=n_nrvifn_nmodisnotNone:self.set_nmod_ncore(n_nmod)ifn_gmshisnotNone:self.set_gmsh_ncore(n_gmsh)ifn_optimisnotNone:self.set_optim_ncore(n_optim)