[docs]defPlotMesh(mesh,TagsAsFields:bool=False,**kargs):# pragma: no cover"""Plot a mesh using PyVista Parameters ---------- mesh : Mesh, vtk mehs or a pyvista mesh the mesh to be plotted TagsAsFields : bool, optional if True the tags of the mesh (in the case of a Muscat Mesh) are converted to fields, by default False """fromMuscat.Containers.MeshimportMeshifisinstance(mesh,Mesh):pyVistaMesh=MeshToPyVista(mesh,TagsAsFields=TagsAsFields)else:pyVistaMesh=meshpyVistaMesh.plot(**kargs)
[docs]defCheckIntegrity(GUI:bool=False):fromMuscat.Helpers.CheckToolsimportSkipTestifSkipTest("PYVISTA_NO_FAIL"):# pragma: no coverreturn"skip"try:importpyvistaexcept:# pragma: no coverreturn"skip : pyvista not installed"importMuscat.Containers.ElementsDescriptionasEDfromMuscat.Containers.MeshCreationToolsimportCreateMeshOffromMuscat.Containers.MeshToolsimportIsClosepoints=[[0,0,0],[1,0,0],[0,1,0],[0,0,1]]tet=[[0,1,2,3]]res=CreateMeshOf(points,tet,elemName=ED.Tetrahedron_4)res.nodeFields={"x":res.nodes[:,0].flatten(),"Pos":res.nodes}res.nodesTags.CreateTag("FirstPoint").AddToTag(0)res.elemFields={"SecondPoint":res.GetElementsOfType(ED.Tetrahedron_4).connectivity[:,1].flatten().astype(float),"conn":res.GetElementsOfType(ED.Tetrahedron_4).connectivity}res.GetElementsOfType(ED.Tetrahedron_4).tags.CreateTag("FirstTetrahedron").AddToTag(0)sol=MeshToPyVista(res,TagsAsFields=True)resII=PyVistaToMesh(sol,FieldsAsTags=True)print(res)print(resII)ifnotIsClose(res,resII):# pragma: no coverraise(Exception("The meshes are not equal"))ifGUI:# pragma: no coverPlotMesh(res)PlotMesh(resII,eye_dome_lighting=True,cpos=[-1,-1,0.2],color=True)return"ok"
if__name__=="__main__":print(CheckIntegrity(True))# pragma: no cover