def CreateTrilinosConvergenceAccelerator(interface_model_part, epetra_communicator, configuration): if not have_trilinos: raise Exception( "Trying to create a Trilinos convergence accelerator, but TrilinosApplication could not be found." ) if (type(interface_model_part) != KratosMultiphysics.ModelPart): raise Exception( "First input in Trilinos convergence accelerator factory is expceted to be provided as a Kratos ModelPart object." ) if (type(configuration) != KratosMultiphysics.Parameters): raise Exception( "Third input in Trilinos convergence accelerator factory is expected to be provided as a Kratos Parameters object." ) convergence_accelerator_type = configuration["solver_type"].GetString() if (convergence_accelerator_type == "Relaxation"): return KratosTrilinos.TrilinosAitkenConvergenceAccelerator( configuration) elif (convergence_accelerator_type == "MVQN_recursive"): return KratosTrilinos.TrilinosMVQNRecursiveJacobianConvergenceAccelerator( interface_model_part, epetra_communicator, configuration) else: raise Exception( "Trilinos convergence accelerator not found. Asking for : " + convergence_accelerator_type) return convergence_accelerator
def CreateTrilinosConvergenceAccelerator(configuration): if (type(configuration) != KratosMultiphysics.Parameters): raise Exception( "Input is expected to be provided as a Kratos Parameters object.") if not have_trilinos: raise Exception( "Trying to create a Trilinos convergence accelerator, but TrilinosApplication could not be found." ) convergence_accelerator_type = configuration["solver_type"].GetString() if (convergence_accelerator_type == "Relaxation"): return KratosTrilinos.TrilinosAitkenConvergenceAccelerator( configuration) else: raise Exception( "Trilinos convergence accelerator not found. Asking for : " + convergence_accelerator_type) return convergence_accelerator