FEM: code formating, flake8 in import Fenics mesh
This commit is contained in:
parent
10dd719631
commit
e98d6321bb
|
@ -33,6 +33,7 @@ import FreeCAD
|
||||||
import os
|
import os
|
||||||
from lxml import etree # parsing xml files and exporting
|
from lxml import etree # parsing xml files and exporting
|
||||||
|
|
||||||
|
|
||||||
# Template copied from importZ88Mesh.py. Thanks Bernd!
|
# Template copied from importZ88Mesh.py. Thanks Bernd!
|
||||||
########## generic FreeCAD import and export methods ##########
|
########## generic FreeCAD import and export methods ##########
|
||||||
if open.__module__ == '__builtin__':
|
if open.__module__ == '__builtin__':
|
||||||
|
@ -72,10 +73,9 @@ def export(objectslist, filename):
|
||||||
|
|
||||||
write_fenics_mesh(obj, filename)
|
write_fenics_mesh(obj, filename)
|
||||||
|
|
||||||
|
|
||||||
########## module specific methods ##########
|
########## module specific methods ##########
|
||||||
|
|
||||||
# Helper
|
# Helper
|
||||||
|
|
||||||
def get_FemMeshObjectDimension(fem_mesh_obj):
|
def get_FemMeshObjectDimension(fem_mesh_obj):
|
||||||
""" Count all entities in an abstract sense, to distinguish which dimension the mesh is
|
""" Count all entities in an abstract sense, to distinguish which dimension the mesh is
|
||||||
(i.e. linemesh, facemesh, volumemesh)
|
(i.e. linemesh, facemesh, volumemesh)
|
||||||
|
@ -93,11 +93,13 @@ def get_FemMeshObjectDimension(fem_mesh_obj):
|
||||||
|
|
||||||
return dim
|
return dim
|
||||||
|
|
||||||
|
|
||||||
def get_FemMeshObjectElementTypes(fem_mesh_obj, remove_zero_element_entries=True):
|
def get_FemMeshObjectElementTypes(fem_mesh_obj, remove_zero_element_entries=True):
|
||||||
"""
|
"""
|
||||||
Spit out all elements in the mesh with their appropriate dimension.
|
Spit out all elements in the mesh with their appropriate dimension.
|
||||||
"""
|
"""
|
||||||
FreeCAD_element_names = ["Node", "Edge", "Hexa", "Polygon", "Polyhedron",
|
FreeCAD_element_names = [
|
||||||
|
"Node", "Edge", "Hexa", "Polygon", "Polyhedron",
|
||||||
"Prism", "Pyramid", "Quadrangle", "Tetra", "Triangle"]
|
"Prism", "Pyramid", "Quadrangle", "Tetra", "Triangle"]
|
||||||
FreeCAD_element_dims = [0, 1, 3, 2, 3, 3, 3, 2, 3, 2]
|
FreeCAD_element_dims = [0, 1, 3, 2, 3, 3, 3, 2, 3, 2]
|
||||||
|
|
||||||
|
@ -108,9 +110,9 @@ def get_FemMeshObjectElementTypes(fem_mesh_obj, remove_zero_element_entries=True
|
||||||
else:
|
else:
|
||||||
elements_list = elements_list_with_zero
|
elements_list = elements_list_with_zero
|
||||||
|
|
||||||
|
|
||||||
return elements_list
|
return elements_list
|
||||||
|
|
||||||
|
|
||||||
def get_MaxDimElementFromList(elem_list):
|
def get_MaxDimElementFromList(elem_list):
|
||||||
"""
|
"""
|
||||||
Gets element with the maximal dimension in the mesh to determine cells.
|
Gets element with the maximal dimension in the mesh to determine cells.
|
||||||
|
@ -118,6 +120,7 @@ def get_MaxDimElementFromList(elem_list):
|
||||||
elem_list.sort(key=lambda (num, s, d): d)
|
elem_list.sort(key=lambda (num, s, d): d)
|
||||||
return elem_list[-1]
|
return elem_list[-1]
|
||||||
|
|
||||||
|
|
||||||
def write_fenics_mesh(fem_mesh_obj, outputfile):
|
def write_fenics_mesh(fem_mesh_obj, outputfile):
|
||||||
"""
|
"""
|
||||||
For the export, we only have to use the highest dimensional entities and their
|
For the export, we only have to use the highest dimensional entities and their
|
||||||
|
@ -126,7 +129,6 @@ def write_fenics_mesh(fem_mesh_obj, outputfile):
|
||||||
# TODO: check for second order elements
|
# TODO: check for second order elements
|
||||||
# TODO: export mesh functions (to be defined, cell functions, vertex functions, facet functions)
|
# TODO: export mesh functions (to be defined, cell functions, vertex functions, facet functions)
|
||||||
|
|
||||||
|
|
||||||
FreeCAD_to_Fenics_dict = {
|
FreeCAD_to_Fenics_dict = {
|
||||||
"Triangle": "triangle",
|
"Triangle": "triangle",
|
||||||
"Tetra": "tetrahedron",
|
"Tetra": "tetrahedron",
|
||||||
|
@ -139,7 +141,6 @@ def write_fenics_mesh(fem_mesh_obj, outputfile):
|
||||||
"Prism": "unknown", "Pyramid": "unknown",
|
"Prism": "unknown", "Pyramid": "unknown",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
print("Converting " + fem_mesh_obj.Label + " to fenics XML File")
|
print("Converting " + fem_mesh_obj.Label + " to fenics XML File")
|
||||||
print("Dimension of mesh: %d" % (get_FemMeshObjectDimension(fem_mesh_obj),))
|
print("Dimension of mesh: %d" % (get_FemMeshObjectDimension(fem_mesh_obj),))
|
||||||
|
|
||||||
|
@ -155,7 +156,8 @@ def write_fenics_mesh(fem_mesh_obj, outputfile):
|
||||||
vertices = etree.SubElement(meshchild, "vertices", size=str(fem_mesh_obj.FemMesh.NodeCount))
|
vertices = etree.SubElement(meshchild, "vertices", size=str(fem_mesh_obj.FemMesh.NodeCount))
|
||||||
|
|
||||||
for (nodeind, fc_vec) in fem_mesh_obj.FemMesh.Nodes.iteritems(): # python2
|
for (nodeind, fc_vec) in fem_mesh_obj.FemMesh.Nodes.iteritems(): # python2
|
||||||
etree.SubElement(vertices, "vertex", index=str(nodeind-1),
|
etree.SubElement(
|
||||||
|
vertices, "vertex", index=str(nodeind - 1),
|
||||||
# FC starts from 1, fenics starts from 0 to size-1
|
# FC starts from 1, fenics starts from 0 to size-1
|
||||||
x=str(fc_vec[0]), y=str(fc_vec[1]), z=str(fc_vec[2]))
|
x=str(fc_vec[0]), y=str(fc_vec[1]), z=str(fc_vec[2]))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user