def _GetPartitionedFSIUtilities(self): if (self.domain_size == 2): return KratosTrilinos.TrilinosPartitionedFSIUtilitiesArray2D( self._GetEpetraCommunicator()) else: return KratosTrilinos.TrilinosPartitionedFSIUtilitiesArray3D( self._GetEpetraCommunicator())
def _CreatePartitionedFSIUtilities(self): if self._GetDomainSize() == 2: return KratosTrilinos.TrilinosPartitionedFSIUtilitiesArray2D( self._GetEpetraCommunicator()) elif self._GetDomainSize() == 3: return KratosTrilinos.TrilinosPartitionedFSIUtilitiesArray3D( self._GetEpetraCommunicator()) else: raise Exception("Domain size expected to be 2 or 3. Got " + str(self._GetDomainSize()))
def setUp(self): # So far, the MPI convergence accelerator tests must be run with 2 processes if (mpi.size != 2): raise Exception( "The MPI convergence accelerator tests must be run with 2 processes." ) self.print_gid_output = False self.accelerator_tolerance = 1e-10 self.accelerator_iterations = 50 self.assert_delta = 1e-7 self.model_part = self.ReadModelPart( GetPartitionedFilePath("box_fluid")) self.model_part.ProcessInfo.SetValue(KratosMultiphysics.DOMAIN_SIZE, 3) self.space = KratosTrilinos.TrilinosSparseSpace() self.epetra_comm = KratosTrilinos.CreateCommunicator() self.partitioned_utilities = KratosTrilinos.TrilinosPartitionedFSIUtilitiesArray3D( self.epetra_comm)
def _create_partitioned_fsi_utilities(self): domain_size = self.GetFatherModelPart().ProcessInfo[ KratosMultiphysics.DOMAIN_SIZE] if not self.GetFatherModelPart().IsDistributed(): if domain_size == 2: if self.scalar_output: return KratosFSI.PartitionedFSIUtilitiesDouble2D() else: return KratosFSI.PartitionedFSIUtilitiesArray2D() elif domain_size == 3: if self.scalar_output: return KratosFSI.PartitionedFSIUtilitiesDouble3D() else: return KratosFSI.PartitionedFSIUtilitiesArray3D() else: raise Exception("Domain size expected to be 2 or 3. Got " + str(self.domain_size)) else: self._epetra_communicator = KratosTrilinos.CreateCommunicator() if domain_size == 2: if self.scalar_output: return KratosTrilinos.TrilinosPartitionedFSIUtilitiesDouble2D( self._epetra_communicator) else: return KratosTrilinos.TrilinosPartitionedFSIUtilitiesArray2D( self._epetra_communicator) elif domain_size == 3: if self.scalar_output: return KratosTrilinos.TrilinosPartitionedFSIUtilitiesDouble3D( self._epetra_communicator) else: return KratosTrilinos.TrilinosPartitionedFSIUtilitiesArray3D( self._epetra_communicator) else: raise Exception("Domain size expected to be 2 or 3. Got " + str(self.domain_size))