Files
create/src/Mod/Fem/App/FemMeshPy.xml
2024-09-15 20:47:09 -03:00

392 lines
17 KiB
XML
Executable File

<?xml version="1.0" encoding="UTF-8"?>
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
<PythonExport
Father="ComplexGeoDataPy"
Name="FemMeshPy"
Twin="FemMesh"
TwinPointer="FemMesh"
Include="Mod/Fem/App/FemMesh.h"
Namespace="Fem"
FatherInclude="App/ComplexGeoDataPy.h"
FatherNamespace="Data"
Constructor="true">
<Documentation>
<Author Licence="LGPL" Name="Juergen Riegel" EMail="Juergen.Riegel@web.de" />
<UserDocu>FemMesh class</UserDocu>
</Documentation>
<Methode Name="setShape">
<Documentation>
<UserDocu>Set the Part shape to mesh</UserDocu>
</Documentation>
</Methode>
<Methode Name="compute">
<Documentation>
<UserDocu>Update the internal mesh structure</UserDocu>
</Documentation>
</Methode>
<Methode Name="addHypothesis">
<Documentation>
<UserDocu>Add hypothesis</UserDocu>
</Documentation>
</Methode>
<Methode Name="setStandardHypotheses">
<Documentation>
<UserDocu>Set some standard hypotheses for the whole shape</UserDocu>
</Documentation>
</Methode>
<Methode Name="addNode">
<Documentation>
<UserDocu>Add a node by setting (x,y,z).</UserDocu>
</Documentation>
</Methode>
<Methode Name="addEdge">
<Documentation>
<UserDocu>Add an edge by setting two node indices.</UserDocu>
</Documentation>
</Methode>
<Methode Name="addEdgeList">
<Documentation>
<UserDocu>Add list of edges by list of node indices and list of nodes per edge.</UserDocu>
</Documentation>
</Methode>
<Methode Name="addFace">
<Documentation>
<UserDocu>Add a face by setting three node indices.</UserDocu>
</Documentation>
</Methode>
<Methode Name="addFaceList">
<Documentation>
<UserDocu>Add list of faces by list of node indices and list of nodes per face.</UserDocu>
</Documentation>
</Methode>
<Methode Name="addQuad">
<Documentation>
<UserDocu>Add a quad by setting four node indices.</UserDocu>
</Documentation>
</Methode>
<Methode Name="addVolume">
<Documentation>
<UserDocu>Add a volume by setting an arbitrary number of node indices.</UserDocu>
</Documentation>
</Methode>
<Methode Name="addVolumeList">
<Documentation>
<UserDocu>Add list of volumes by list of node indices and list of nodes per volume.</UserDocu>
</Documentation>
</Methode>
<Methode Name="read">
<Documentation>
<UserDocu>Read in a various FEM mesh file formats.
read(file.endingToExportTo)
supported formats: DAT, INP, MED, STL, UNV, VTK, Z88</UserDocu>
</Documentation>
</Methode>
<Methode Name="write" Const="true">
<Documentation>
<UserDocu>Write out various FEM mesh file formats.
write(file.endingToExportTo)
supported formats: BDF, DAT, INP, MED, STL, UNV, VTK, Z88
</UserDocu>
</Documentation>
</Methode>
<Methode Name="writeABAQUS" Const="true" Keyword="true">
<Documentation>
<UserDocu>Write out as ABAQUS inp
writeABAQUS(file, int elemParam, bool groupParam, str volVariant, str faceVariant, str edgeVariant)
elemParam:
0: All elements
1: Highest elements only
2: FEM elements only (only edges not belonging to faces and faces not belonging to volumes)
groupParam:
True: Write group data
False: Do not write group data
volVariant: Volume elements
"standard": Tetra4 -> C3D4, Penta6 -> C3D6, Hexa8 -> C3D8, Tetra10 -> C3D10, Penta15 -> C3D15, Hexa20 -> C3D20
"reduced": Hexa8 -> C3D8R, Hexa20 -> C3D20R
"incompatible": Hexa8 -> C3D8I
"modified": Tetra10 -> C3D10T
"fluid": Tetra4 -> F3D4, Penta6 -> F3D6, Hexa8 -> F3D8
faceVariant: Face elements
"shell": Tria3 -> S3, Quad4 -> S4, Tria6 -> S6, Quad8 -> S8
"shell reduced": Tria3 -> S3, Quad4 -> S4R, Tria6 -> S6, Quad8 -> S8R
"membrane": Tria3 -> M3D3, Quad4 -> M3D4, Tria6 -> M3D6, Quad8 -> M3D8
"membrane reduced": Tria3 -> M3D3, Quad4 -> M3D4R, Tria6 -> M3D6, Quad8 -> M3D8R
"stress": Tria3 -> CPS3, Quad4 -> CPS4, Tria6 -> CPS6, Quad8 -> CPS8
"stress reduced": Tria3 -> CPS3, Quad4 -> CPS4R, Tria6 -> CPS6, Quad8 -> CPS8R
"strain": Tria3 -> CPE3, Quad4 -> CPE4, Tria6 -> CPE6, Quad8 -> CPE8
"strain reduced": Tria3 -> CPE3, Quad4 -> CPE4R, Tria6 -> CPE6, Quad8 -> CPE8R
"axisymmetric": Tria3 -> CAX3, Quad4 -> CAX4, Tria6 -> CAX6, Quad8 -> CAX8
"axisymmetric reduced": Tria3 -> CAX3, Quad4 -> CAX4R, Tria6 -> CAX6, Quad8 -> CAX8R
edgeVariant: Edge elements
"beam": Seg2 -> B31, Seg3 -> B32
"beam reduced": Seg2 -> B31R, Seg3 -> B32R
"truss": Seg2 -> T3D2, eg3 -> T3D3
"network": Seg3 -> D
Elements are selected according to CalculiX availability.
For example if volume variant "modified" is selected, Tetra10 mesh
elements are assigned to C3D10T and remain elements uses "standard".
Axisymmetric, plane strain and plane stress elements expect nodes in the plane z=0.</UserDocu>
</Documentation>
</Methode>
<Methode Name="setTransform">
<Documentation>
<UserDocu>Use a Placement object to perform a translation or rotation</UserDocu>
</Documentation>
</Methode>
<Methode Name="copy" Const="true">
<Documentation>
<UserDocu>Make a copy of this FEM mesh.</UserDocu>
</Documentation>
</Methode>
<Methode Name="getFacesByFace" Const="true">
<Documentation>
<UserDocu>Return a list of face IDs which belong to a TopoFace</UserDocu>
</Documentation>
</Methode>
<Methode Name="getEdgesByEdge" Const="true">
<Documentation>
<UserDocu>Return a list of edge IDs which belong to a TopoEdge</UserDocu>
</Documentation>
</Methode>
<Methode Name="getVolumesByFace" Const="true">
<Documentation>
<UserDocu>Return a dict of volume IDs and face IDs which belong to a TopoFace</UserDocu>
</Documentation>
</Methode>
<Methode Name="getccxVolumesByFace" Const="true">
<Documentation>
<UserDocu>Return a dict of volume IDs and ccx face numbers which belong to a TopoFace</UserDocu>
</Documentation>
</Methode>
<Methode Name="getNodeById" Const="true">
<Documentation>
<UserDocu>Get the node position vector by a Node-ID</UserDocu>
</Documentation>
</Methode>
<Methode Name="getNodesBySolid" Const="true">
<Documentation>
<UserDocu>Return a list of node IDs which belong to a TopoSolid</UserDocu>
</Documentation>
</Methode>
<Methode Name="getNodesByFace" Const="true">
<Documentation>
<UserDocu>Return a list of node IDs which belong to a TopoFace</UserDocu>
</Documentation>
</Methode>
<Methode Name="getNodesByEdge" Const="true">
<Documentation>
<UserDocu>Return a list of node IDs which belong to a TopoEdge</UserDocu>
</Documentation>
</Methode>
<Methode Name="getNodesByVertex" Const="true">
<Documentation>
<UserDocu>Return a list of node IDs which belong to a TopoVertex</UserDocu>
</Documentation>
</Methode>
<Methode Name="getElementNodes" Const="true">
<Documentation>
<UserDocu>Return a tuple of node IDs to a given element ID</UserDocu>
</Documentation>
</Methode>
<Methode Name="getNodeElements" Const="true">
<Documentation>
<UserDocu>Return a tuple of specific element IDs associated to a given node ID</UserDocu>
</Documentation>
</Methode>
<Methode Name="getGroupName" Const="true">
<Documentation>
<UserDocu>Return a string of group name to a given group ID</UserDocu>
</Documentation>
</Methode>
<Methode Name="getGroupElementType" Const="true">
<Documentation>
<UserDocu>Return a string of group element type to a given group ID</UserDocu>
</Documentation>
</Methode>
<Methode Name="getGroupElements" Const="true">
<Documentation>
<UserDocu>Return a tuple of ElementIDs to a given group ID</UserDocu>
</Documentation>
</Methode>
<Methode Name="addGroup" Const="true">
<Documentation>
<UserDocu>Add a group to mesh with specific name and type
addGroup(name, typestring, [id])
name: string
typestring: "All", "Node", "Edge", "Face", "Volume", "0DElement", "Ball"
id: int
Optional id is used to force specific id for group, but does
not work, yet.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="addGroupElements" Const="true">
<Documentation>
<UserDocu>Add a tuple of ElementIDs to a given group ID
addGroupElements(groupid, list_of_elements)
groupid: int
list_of_elements: list of int
Notice that the elements have to be in the mesh.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="removeGroup" Const="true">
<Documentation>
<UserDocu>Remove a group with a given group ID
removeGroup(groupid)
groupid: int
Returns boolean.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="getElementType" Const="true">
<Documentation>
<UserDocu>Return the element type of a given ID</UserDocu>
</Documentation>
</Methode>
<Methode Name="getIdByElementType" Const="true">
<Documentation>
<UserDocu>Return a tuple of IDs to a given element type</UserDocu>
</Documentation>
</Methode>
<Attribute Name="Nodes" ReadOnly="true">
<Documentation>
<UserDocu>Dictionary of Nodes by ID (int ID:Vector())</UserDocu>
</Documentation>
<Parameter Name="Nodes" Type="Dict"/>
</Attribute>
<Attribute Name="NodeCount" ReadOnly="true">
<Documentation>
<UserDocu>Number of nodes in the Mesh.</UserDocu>
</Documentation>
<Parameter Name="NodeCount" Type="Long"/>
</Attribute>
<Attribute Name="Edges" ReadOnly="true">
<Documentation>
<UserDocu>Tuple of edge IDs</UserDocu>
</Documentation>
<Parameter Name="Edges" Type="Tuple"/>
</Attribute>
<Attribute Name="EdgesOnly" ReadOnly="true">
<Documentation>
<UserDocu>Tuple of edge IDs which does not belong to any face (and thus not belong to any volume too)</UserDocu>
</Documentation>
<Parameter Name="EdgesOnly" Type="Tuple"/>
</Attribute>
<Attribute Name="EdgeCount" ReadOnly="true">
<Documentation>
<UserDocu>Number of edges in the Mesh.</UserDocu>
</Documentation>
<Parameter Name="EdgeCount" Type="Long"/>
</Attribute>
<Attribute Name="Faces" ReadOnly="true">
<Documentation>
<UserDocu>Tuple of face IDs</UserDocu>
</Documentation>
<Parameter Name="Faces" Type="Tuple"/>
</Attribute>
<Attribute Name="FacesOnly" ReadOnly="true">
<Documentation>
<UserDocu>Tuple of face IDs which does not belong to any volume</UserDocu>
</Documentation>
<Parameter Name="FacesOnly" Type="Tuple"/>
</Attribute>
<Attribute Name="FaceCount" ReadOnly="true">
<Documentation>
<UserDocu>Number of Faces in the Mesh.</UserDocu>
</Documentation>
<Parameter Name="FaceCount" Type="Long"/>
</Attribute>
<Attribute Name="TriangleCount" ReadOnly="true">
<Documentation>
<UserDocu>Number of Triangles in the Mesh.</UserDocu>
</Documentation>
<Parameter Name="TriangleCount" Type="Long"/>
</Attribute>
<Attribute Name="QuadrangleCount" ReadOnly="true">
<Documentation>
<UserDocu>Number of Quadrangles in the Mesh.</UserDocu>
</Documentation>
<Parameter Name="QuadrangleCount" Type="Long"/>
</Attribute>
<Attribute Name="PolygonCount" ReadOnly="true">
<Documentation>
<UserDocu>Number of Quadrangles in the Mesh.</UserDocu>
</Documentation>
<Parameter Name="PolygonCount" Type="Long"/>
</Attribute>
<Attribute Name="Volumes" ReadOnly="true">
<Documentation>
<UserDocu>Tuple of volume IDs</UserDocu>
</Documentation>
<Parameter Name="Volumes" Type="Tuple"/>
</Attribute>
<Attribute Name="VolumeCount" ReadOnly="true">
<Documentation>
<UserDocu>Number of Volumes in the Mesh.</UserDocu>
</Documentation>
<Parameter Name="VolumeCount" Type="Long"/>
</Attribute>
<Attribute Name="TetraCount" ReadOnly="true">
<Documentation>
<UserDocu>Number of Tetras in the Mesh.</UserDocu>
</Documentation>
<Parameter Name="TetraCount" Type="Long"/>
</Attribute>
<Attribute Name="HexaCount" ReadOnly="true">
<Documentation>
<UserDocu>Number of Hexas in the Mesh.</UserDocu>
</Documentation>
<Parameter Name="HexaCount" Type="Long"/>
</Attribute>
<Attribute Name="PyramidCount" ReadOnly="true">
<Documentation>
<UserDocu>Number of Pyramids in the Mesh.</UserDocu>
</Documentation>
<Parameter Name="PyramidCount" Type="Long"/>
</Attribute>
<Attribute Name="PrismCount" ReadOnly="true">
<Documentation>
<UserDocu>Number of Prisms in the Mesh.</UserDocu>
</Documentation>
<Parameter Name="PrismCount" Type="Long"/>
</Attribute>
<Attribute Name="PolyhedronCount" ReadOnly="true">
<Documentation>
<UserDocu>Number of Polyhedrons in the Mesh.</UserDocu>
</Documentation>
<Parameter Name="PolyhedronCount" Type="Long"/>
</Attribute>
<Attribute Name="SubMeshCount" ReadOnly="true">
<Documentation>
<UserDocu>Number of SubMeshs in the Mesh.</UserDocu>
</Documentation>
<Parameter Name="SubMeshCount" Type="Long"/>
</Attribute>
<Attribute Name="GroupCount" ReadOnly="true">
<Documentation>
<UserDocu>Number of Groups in the Mesh.</UserDocu>
</Documentation>
<Parameter Name="GroupCount" Type="Long"/>
</Attribute>
<Attribute Name="Groups" ReadOnly="true">
<Documentation>
<UserDocu>Tuple of Group IDs.</UserDocu>
</Documentation>
<Parameter Name="Groups" Type="Tuple"/>
</Attribute>
<Attribute Name="Volume" ReadOnly="true">
<Documentation>
<UserDocu>Volume of the mesh.</UserDocu>
</Documentation>
<Parameter Name="Volume" Type="Object"/>
</Attribute>
</PythonExport>
</GenerateModel>