# You should have received a copy of the GNU General Public License # along with code_aster. If not, see <http://www.gnu.org/licenses/>. # -------------------------------------------------------------------- import code_aster from code_aster.Commands import * code_aster.init("--test") test = code_aster.TestCase() rank = code_aster.getMPIRank() print("Nb procs", code_aster.getMPINumberOfProcs()) print("Rank", code_aster.getMPIRank()) pMesh2 = code_aster.ParallelMesh() pMesh2.readMedFile("xxParallelMesh001a/%d.med"%rank, True) pMesh2=DEFI_GROUP(reuse =pMesh2,MAILLAGE=pMesh2,CREA_GROUP_NO=_F(TOUT_GROUP_MA='OUI')) del pMesh2 pMesh = code_aster.ParallelMesh() pMesh.readMedFile("xxParallelMesh001a/%d.med"%rank, True) pMesh.debugPrint(rank+30) model = code_aster.Model(pMesh) test.assertEqual(model.getType(), "MODELE_SDASTER") model.addModelingOnMesh(code_aster.Physics.Mechanics, code_aster.Modelings.Tridimensional) model.build() testMesh = model.getMesh()
# along with code_aster. If not, see <http://www.gnu.org/licenses/>. # -------------------------------------------------------------------- import code_aster from code_aster.Commands import * code_aster.init("--test") test = code_aster.TestCase() #parallel=False parallel = True if parallel: rank=code_aster.getMPIRank() MAIL = code_aster.ParallelMesh() MAIL.readMedFile("xxFieldsplit001a/%d.med"%rank, True) else: MAIL = code_aster.Mesh() MAIL.readMedFile("xxFieldsplit001a.mmed") MODELE = AFFE_MODELE( AFFE=_F(MODELISATION='3D_THM', PHENOMENE='MECANIQUE', TOUT='OUI'), MAILLAGE=MAIL, DISTRIBUTION=_F(METHODE='CENTRALISE'), ) # # ################################### # LISTE DES INSTANTS DE CALCUL
from code_aster.Commands import DEFI_GROUP code_aster.init("--test") # check ParallelMesh object API test = code_aster.TestCase() # MPI test rank = code_aster.getMPIRank() nbproc = code_aster.getMPINumberOfProcs() test.assertEqual(nbproc, 3) # from MED format (only this one a ParallelMesh) mesh = code_aster.ParallelMesh() mesh.readMedFile("mesh001b/%d.med" % rank, True) mesh = DEFI_GROUP(reuse=mesh, MAILLAGE=mesh, CREA_GROUP_NO=(_F(NOM='GN' + str(rank), GROUP_NO='EXT_0'), ), CREA_GROUP_MA=(_F(NOM='GC' + str(rank), GROUP_MA='Cable0'), )) test.assertTrue(mesh.isParallel()) test.assertEqual(mesh.getDimension(), 3) nbNodes = [89, 90, 109] nbCells = [59, 54, 75] test.assertEqual(mesh.getNumberOfNodes(), nbNodes[rank])
# You should have received a copy of the GNU General Public License # along with code_aster. If not, see <http://www.gnu.org/licenses/>. # -------------------------------------------------------------------- import code_aster from code_aster.Commands import * code_aster.init("--test") test = code_aster.TestCase() ## This test has two independant domains. One on each cpu then there is no joint in the parallel mesh rank = code_aster.getMPIRank() monMaillage = code_aster.ParallelMesh() monMaillage.readMedFile("xxParallelNonlinearMechanics004a/%d.med" % rank, True) monModel = AFFE_MODELE( MAILLAGE=monMaillage, AFFE=_F( TOUT='OUI', PHENOMENE='MECANIQUE', MODELISATION='3D', ), ) acier = DEFI_MATERIAU(ELAS=_F( E=200000., NU=0.3, ), )
path.replace("/proc." + str(code_aster.getMPIRank()), "") meshFolder = path + "/meshFolder" try: os.mkdir(meshFolder) except OSError: print("Creation of the directory %s failed" % meshFolder) # write the mesh in meshFolder ms.writeMesh(meshFolder) # 3 different way to read a Parallel Mesh # 1) File by File after partioning (need a preliminary partioning ) pMesh1 = code_aster.ParallelMesh() pMesh1.readMedFile(ms.writedFilename(), True) # 2) From a folder (need a preliminary partioning ) pMesh2 = code_aster.ParallelMesh() pMesh2.readMedFile(meshFolder + "/ssnv187a_new_%d.med" % rank, True) # 3) Directely from a file (without preliminary partioning ) pMesh3 = code_aster.ParallelMesh() pMesh3.readMedFile("ssnv187a.mmed") # 4) With LIRE_MAILLAGE (internal partitioning) pMesh4 = LIRE_MAILLAGE(UNITE=20, FORMAT="MED", PARTITIONNEUR="PTSCOTCH", INFO_MED=2)