Пример #1
0
    def __init__(self,model,parameters):
        # Time monitoring
        KratosMultiphysics.Logger.PrintInfo(self._GetSimulationName(),timer.ctime())
        self.initial_time = timer.perf_counter()

        # Set number of OMP threads
        parallel=Kratos.OpenMPUtils()
        parallel.SetNumThreads(parameters["problem_data"]["number_of_threads"].GetInt())

        ## Import parallel modules if needed
        if (parameters["problem_data"]["parallel_type"].GetString() == "MPI"):
            import KratosMultiphysics.MetisApplication as MetisApplication
            import KratosMultiphysics.TrilinosApplication as TrilinosApplication
            KratosMultiphysics.Logger.PrintInfo(self._GetSimulationName(),"MPI parallel configuration. OMP_NUM_THREADS =",parallel.GetNumThreads())
        else:
            import poromechanics_cleaning_utility
            poromechanics_cleaning_utility.CleanPreviousFiles(os.getcwd()) # Clean previous post files
            KratosMultiphysics.Logger.PrintInfo(self._GetSimulationName(),"OpenMP parallel configuration. OMP_NUM_THREADS =",parallel.GetNumThreads())

        # Initialize Fracture Propagation Utility if necessary
        if parameters["problem_data"]["fracture_utility"].GetBool():
            import poromechanics_fracture_propagation_utility
            self.fracture_utility = poromechanics_fracture_propagation_utility.FracturePropagationUtility(model,
                                                                                                        self._GetOrderOfProcessesInitialization())
            parameters = self.fracture_utility.Initialize(parameters)

        # Creating solver and model part and adding variables
        super(PoromechanicsAnalysis,self).__init__(model,parameters)
Пример #2
0
    def _SetUpGiDOutput(self):
        '''Initialize a GiD output instance.'''
        if self.parallel_type == "OpenMP":
            import poromechanics_cleaning_utility
            poromechanics_cleaning_utility.CleanPreviousFiles(
                os.getcwd())  # Clean previous post files
            from gid_output_process import GiDOutputProcess as OutputProcess
        elif self.parallel_type == "MPI":
            from gid_output_process_mpi import GiDOutputProcessMPI as OutputProcess

        output = OutputProcess(
            self._GetSolver().GetComputingModelPart(),
            self.project_parameters["problem_data"]
            ["problem_name"].GetString(),
            self.project_parameters["output_configuration"])

        return output
Пример #3
0
for process in list_of_processes:
    process.ExecuteInitialize()

# Set TIME and DELTA_TIME and fill the previous steps of the buffer with the initial conditions
time = time - (buffer_size - 1) * delta_time
main_model_part.ProcessInfo.SetValue(KratosMultiphysics.TIME, time)
for step in range(buffer_size - 1):
    time = time + delta_time
    main_model_part.CloneTimeStep(time)

# Initialize GiD I/O
computing_model_part = solver.GetComputingModelPart()
output_settings = ProjectParameters["output_configuration"]
if parallel_type == "OpenMP":
    import poromechanics_cleaning_utility
    poromechanics_cleaning_utility.CleanPreviousFiles(
        problem_path)  # Clean previous post files
    from gid_output_process import GiDOutputProcess
    gid_output = GiDOutputProcess(computing_model_part, problem_name,
                                  output_settings)
else:
    from gid_output_process_mpi import GiDOutputProcessMPI
    gid_output = GiDOutputProcessMPI(computing_model_part, problem_name,
                                     output_settings)
gid_output.ExecuteInitialize()

# Initialize the solver
solver.Initialize()

# ExecuteBeforeSolutionLoop
for process in list_of_processes:
    process.ExecuteBeforeSolutionLoop()