コード例 #1
0
# 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()
コード例 #2
0
# 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
コード例 #3
0
ファイル: mesh001b.py プロジェクト: ehmoussi/code_aster
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])
コード例 #4
0
# 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,
), )
コード例 #5
0
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)