Пример #1
0
    def AddProcesses(self):

        # Build sub_model_parts or submeshes (rearrange parts for the application of custom processes)
        ## Get the list of the submodel part in the object Model
        for i in range(self.ProjectParameters["solver_settings"]
                       ["processes_sub_model_part_list"].size()):
            part_name = self.ProjectParameters["solver_settings"][
                "processes_sub_model_part_list"][i].GetString()
            if (self.main_model_part.HasSubModelPart(part_name)):
                self.Model.update({
                    part_name:
                    self.main_model_part.GetSubModelPart(part_name)
                })

        # Obtain the list of the processes to be applied
        import process_handler

        process_parameters = KratosMultiphysics.Parameters("{}")
        process_parameters.AddValue(
            "echo_level", self.ProjectParameters["problem_data"]["echo_level"])
        process_parameters.AddValue(
            "constraints_process_list",
            self.ProjectParameters["constraints_process_list"])
        process_parameters.AddValue(
            "loads_process_list", self.ProjectParameters["loads_process_list"])
        if (self.ProjectParameters.Has("problem_process_list")):
            process_parameters.AddValue(
                "problem_process_list",
                self.ProjectParameters["problem_process_list"])
        if (self.ProjectParameters.Has("output_process_list")):
            process_parameters.AddValue(
                "output_process_list",
                self.ProjectParameters["output_process_list"])

        return (process_handler.ProcessHandler(self.Model, process_parameters))
Пример #2
0
    def _get_processes(self):
        # Obtain the list of the processes to be applied
        import process_handler

        process_parameters = KratosMultiphysics.Parameters("{}")
        process_parameters.AddEmptyValue("echo_level").SetInt(self.echo_level)
        if (self.ProjectParameters.Has("constraints_process_list")):
            process_parameters.AddValue(
                "constraints_process_list",
                self.ProjectParameters["constraints_process_list"])
        if (self.ProjectParameters.Has("loads_process_list")):
            process_parameters.AddValue(
                "loads_process_list",
                self.ProjectParameters["loads_process_list"])
        if (self.ProjectParameters.Has("problem_process_list")):
            process_parameters.AddValue(
                "problem_process_list",
                self.ProjectParameters["problem_process_list"])
        if (self.ProjectParameters.Has("output_process_list")):
            process_parameters.AddValue(
                "output_process_list",
                self.ProjectParameters["output_process_list"])
        if (self.ProjectParameters.Has("check_process_list")):
            process_parameters.AddValue(
                "check_process_list",
                self.ProjectParameters["check_process_list"])

        domain_model = self.model.GetModel()
        return (process_handler.ProcessHandler(domain_model,
                                               process_parameters))
Пример #3
0
    def _get_processes(self):
        # Obtain the list of the processes to be applied
        import process_handler

        # get processes parameters
        processes_parameters = self._get_processes_parameters()

        domain_model = self.model.GetModel()
        return process_handler.ProcessHandler(domain_model, processes_parameters)
Пример #4
0
    def Initialize(self):

        # Add variables (always before importing the model part)
        self.AddNodalVariablesToModelPart()

        # Read model_part (note: the buffer_size is set here) (restart is read here)
        self.solver.ImportModelPart()

        # Add dofs (always after importing the model part)
        if ((self.main_model_part.ProcessInfo).Has(
                KratosMultiphysics.IS_RESTARTED)):
            if (self.main_model_part.ProcessInfo[
                    KratosMultiphysics.IS_RESTARTED] == False):
                self.solver.AddDofs()
        else:
            self.solver.AddDofs()

        # Build sub_model_parts or submeshes (rearrange parts for the application of custom processes)
        ## Get the list of the submodel part in the object Model
        for i in range(self.ProjectParameters["solver_settings"]
                       ["processes_sub_model_part_list"].size()):
            part_name = self.ProjectParameters["solver_settings"][
                "processes_sub_model_part_list"][i].GetString()
            if (self.main_model_part.HasSubModelPart(part_name)):
                self.Model.update({
                    part_name:
                    self.main_model_part.GetSubModelPart(part_name)
                })

        #### Model_part settings end ####

        #print model_part and properties
        if (self.echo_level > 1):
            print("")
            print(self.main_model_part)
            for properties in self.main_model_part.Properties:
                print(properties)

        #### Processes settings start ####

        #obtain the list of the processes to be applied

        import process_handler

        process_parameters = KratosMultiphysics.Parameters("{}")
        process_parameters.AddValue(
            "echo_level", self.ProjectParameters["problem_data"]["echo_level"])
        process_parameters.AddValue(
            "constraints_process_list",
            self.ProjectParameters["constraints_process_list"])
        process_parameters.AddValue(
            "loads_process_list", self.ProjectParameters["loads_process_list"])
        if (self.ProjectParameters.Has("problem_process_list")):
            process_parameters.AddValue(
                "problem_process_list",
                self.ProjectParameters["problem_process_list"])
        if (self.ProjectParameters.Has("output_process_list")):
            process_parameters.AddValue(
                "output_process_list",
                self.ProjectParameters["output_process_list"])
        if (self.ProjectParameters.Has("processes_sub_model_part_tree_list")):
            process_parameters.AddValue(
                "processes_sub_model_part_tree_list",
                self.ProjectParameters["processes_sub_model_part_tree_list"])
        if (self.ProjectParameters.Has("check_process_list")):
            process_parameters.AddValue(
                "check_process_list",
                self.ProjectParameters["check_process_list"])

        self.model_processes = process_handler.ProcessHandler(
            self.Model, process_parameters)

        self.model_processes.ExecuteInitialize()

        #### processes settings end ####

        # --PLOT GRAPHS OPTIONS START--###############
        #self.problem_path = os.getcwd() #current path
        #plot_active = general_variables.PlotGraphs
        #graph_plot = plot_utils.GraphPlotUtility(model_part, self.problem_path)
        # --PLOT GRAPHS OPTIONS END--#################

        #### START SOLUTION ####

        self.computing_model_part = self.solver.GetComputingModelPart()

        self.graphical_output = self.SetGraphicalOutput()

        ## Sets strategies, builders, linear solvers, schemes and solving info, and fills the buffer
        self.solver.Initialize()
        self.solver.InitializeStrategy()
        self.solver.SetEchoLevel(self.echo_level)

        # Initialize GiD  I/O (gid outputs, file_lists)
        self.GraphicalOutputExecuteInitialize()

        #### Output settings end ####

        # writing a initial state results file
        current_id = 0
        #if(load_restart == False):
        #    if (general_variables.TryToSetTheWeight):
        #        if (general_variables.TryToSetConstantWeight):
        #            conditions.SetConstantWeight( general_variables.TryToSetWeightVertical, general_variables.TryToSetWeightHorizontal);
        #        else:
        #            conditions.SetWeight();

        # set solver info starting parameters
        # solving_info = solving_info_utils.SolvingInfoUtility(model_part, SolverSettings)

        print(" ")
        print("::[KPFEM Simulation]:: Analysis -START- ")

        self.model_processes.ExecuteBeforeSolutionLoop()

        self.GraphicalOutputExecuteBeforeSolutionLoop()

        # Set time settings
        self.step = self.main_model_part.ProcessInfo[KratosMultiphysics.STEP]
        self.time = self.main_model_part.ProcessInfo[KratosMultiphysics.TIME]

        self.end_time = self.ProjectParameters["problem_data"][
            "end_time"].GetDouble()
        self.delta_time = self.ProjectParameters["problem_data"][
            "time_step"].GetDouble()
Пример #5
0
process_parameters.AddValue("constraints_process_list",
                            ProjectParameters["constraints_process_list"])
process_parameters.AddValue("loads_process_list",
                            ProjectParameters["loads_process_list"])
if (ProjectParameters.Has("problem_process_list")):
    process_parameters.AddValue("problem_process_list",
                                ProjectParameters["problem_process_list"])
if (ProjectParameters.Has("output_process_list")):
    process_parameters.AddValue("output_process_list",
                                ProjectParameters["output_process_list"])
if (ProjectParameters.Has("processes_sub_model_part_tree_list")):
    process_parameters.AddValue(
        "processes_sub_model_part_tree_list",
        ProjectParameters["processes_sub_model_part_tree_list"])

model_processes = process_handler.ProcessHandler(Model, process_parameters)

model_processes.ExecuteInitialize()

#### processes settings end ####

# --PLOT GRAPHS OPTIONS START--###############
#problem_path = os.getcwd() #current path
#plot_active = general_variables.PlotGraphs
#graph_plot = plot_utils.GraphPlotUtility(model_part, problem_path)
# --PLOT GRAPHS OPTIONS END--#################

#### START SOLUTION ####

computing_model_part = solver.GetComputingModelPart()
- process_handler.py, bundled together with this script. Makes it possible to run locally or in a cluster with the Slurm queueing system


RUN:

python lfq_workflow.py 
	-project_folder=/absolute/or/relative/path/to/folder/where/results/will/be/created 
	-mzML_folder=/absolute/or/relative/path/to/mzML/ 
	-id_results_folder=/absolute/or/relative/path/to/id_results/ 
	-n_samples 5 
	-n_replica 4

'''

print("\n--lfq_worflow--\n")
ph = process_handler.ProcessHandler()()
print("ProcessHandler object created on pipeline.py\n")

#Read arguments , basic checkings and create folders for results
#-------------------------------------------------------------------------------------------------------------------------------------

apars = argparse.ArgumentParser(
    formatter_class=argparse.ArgumentDefaultsHelpFormatter)
apars.add_argument('-project_folder',
                   help='folder where all results will be created',
                   required=True)
apars.add_argument('-mzML_folder',
                   default='mzML/',
                   help='dataset folder with mzML files',
                   required=True)
apars.add_argument('-id_results_folder',