You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
909 B
31 lines
909 B
11 months ago
|
# -*- coding: utf-8 -*-
|
||
|
"""
|
||
|
Created on Fri Feb 12 19:36:29 2021
|
||
|
|
||
|
@author: Liangchao Zhu
|
||
|
"""
|
||
|
|
||
|
import numpy as np
|
||
|
|
||
|
def nodidxMapping(num):
|
||
|
nele = num**3
|
||
|
nnod = (num+1)**3
|
||
|
nodenrs = np.arange(nnod).reshape((num+1,num+1,num+1))
|
||
|
# edofvec = nodenrs[:-1,:-1,:-1].reshape((nele,1))
|
||
|
# edofMat = np.tile(edofvec,(1,8))+np.tile(np.array([0,1,num+1,num+2,(num+1)**2,(num+1)**2+1,(num+1)**2+num+1,(num+1)**2+num+2]),(nele,1))
|
||
|
# # print(nodenrs[0])
|
||
|
# # print(edofvec)
|
||
|
# # print(edofMat)
|
||
|
# nnpArray=np.arange(nele).reshape(num,num,num);
|
||
|
# eleidx = nnpArray
|
||
|
nodIdx = np.zeros((nnod,3),dtype = np.int)
|
||
|
for i in range(num+1):
|
||
|
for j in range(num+1):
|
||
|
for k in range(num+1):
|
||
|
nodIdx[nodenrs[i,j,k],0]=k
|
||
|
nodIdx[nodenrs[i,j,k],1]=j
|
||
|
nodIdx[nodenrs[i,j,k],2]=i
|
||
|
return nodIdx
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
nodIdx = nodidxMapping(2)
|