MCPcopy Create free account
hub / github.com/NGSolve/ngsolve / AddSurfEls

Function AddSurfEls

python/meshes.py:412–445  ·  view source on GitHub ↗
(p1, dxi, nxi, deta, neta, facenr)

Source from the content-addressed store, hash-verified

410 netmesh.Add(Element3D(1, elpids))
411
412 def AddSurfEls(p1, dxi, nxi, deta, neta, facenr):
413 def add_seg(i, j, os):
414 base = p1 + i*dxi + j*deta
415 pnum = [base, base+os]
416 elpids = [pids[p] for p in pnum]
417 netmesh.Add(Element1D(elpids, index=facenr))
418 for i in range(nxi):
419 for j in [0,neta]:
420 add_seg(i,j,dxi)
421 for i in [0,nxi]:
422 for j in range(neta):
423 add_seg(i,j,deta)
424 for i in range(nxi):
425 for j in range(neta):
426 base = p1 + i*dxi+j*deta
427 pnum = [base, base+dxi, base+dxi+deta, base+deta]
428 if prism:
429 if facenr <= 4:
430 qarr = [1,2,3,0]
431 elpids = [pids[pnum[p]] for p in qarr]
432 netmesh.Add(Element2D(facenr, elpids))
433 else:
434 qarrs = [[3, 1, 2], [3, 0, 1]]
435 for qarr in qarrs:
436 elpids = [pids[p] for p in [pnum[q] for q in qarr]]
437 netmesh.Add(Element2D(facenr, elpids))
438 elif hexes:
439 elpids = [pids[p] for p in pnum]
440 netmesh.Add(Element2D(facenr, elpids))
441 else:
442 qarrs = [[0, 1, 2], [0, 2, 3]]
443 for qarr in qarrs:
444 elpids = [pids[p] for p in [pnum[q] for q in qarr]]
445 netmesh.Add(Element2D(facenr, elpids))
446
447 #order is important!
448 netmesh.Add(FaceDescriptor(surfnr=4, domin=1, bc=1))

Callers 1

MakeStructured3DMeshFunction · 0.85

Calls 2

add_segFunction · 0.85
AddMethod · 0.80

Tested by

no test coverage detected