Générer un maillage du triangle stéréographique standard et y tracer un champ scalaire
neper -T -n 1 -domain "stdtriangle(10)" -dim 2 -o stdtri neper -M stdtri.tess -cl 0.04 -mesh2dalgo fron -statnode x,y awk '{print $2}' stdtri.stnode > data neper -V stdtri.msh -showelt1d all -dataelt1drad 0.001 \ -dataelt2dedgerad 0.0005 -cameraangle 3.4 -print stdtri \ -datanodecol scal:data -dataeltcol from_nodes \ -datanodescale 0.0:0.1:0.2:0.3:0.4 \ -print stdtri-col
Convertir un maillage périodique pour Zebulon
neper -T -n 10 -dim 3 -per 1 -oriformat geof -o polyper neper -M polyper.tess -for geof
Convertir un fichier .per en format Zebulon
- from collections import defaultdict
- def do_mpc(per_filename):
- pairs = np.loadtxt('per_filename', usecols=[0,1])
- pairs_dir = np.loadtxt('per_filename', usecols=[2,3,4])
- pair_counter = 0
- cells = ""
- bc_u = []
- mpc = defaultdict(list)
- for idx, n in enumerate(pairs):
- mpc[n[1]].append(n[0])
- for slave, master in mpc.iteritems():
- cells += "**nset cell{:0d}\n".format(pair_counter)
- if len(master)==1:
- n = [slave, master[0]]
- cells += "{:.0f} {:.0f}\n".format(n[0], n[1])
- bc_u.append('**mpc2 {:.0f} U1 {:.0f} U1\n**mpc2 {:.0f} U2 {:.0f} U2\n**mpc2 {:.0f} U3 {:.0f} U3'.format(n[0], n[1], n[0], n[1], n[0], n[1]))
- else:
- cells += " ".join(["{:.0f}".format(i) for i in master]) + " {:.0f}\n".format(slave)
- bc_u.append('**mpc1 cell{:0d} U1\n**mpc1 cell{:0d} U2\n**mpc1 cell{:0d} U3'.format(pair_counter, pair_counter, pair_counter))
- pair_counter += 1
- with open('cells_geof', 'w') as cell_geof:
- cell_geof.write(cells)
- with open('mpc_for_inp', 'w') as mpc_file:
- mpc_file.write('\n'.join(bc_u))
- return '\n'.join(bc_u)
Référents
- Romain Quey - Aurélien Villani