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)
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
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()