MCPcopy Create free account
hub / github.com/PyMesh/PyMesh / Assembler

Class Assembler

python/pymesh/Assembler.py:6–54  ·  view source on GitHub ↗

Finite element matrix assembler Example: >>> mesh = pymesh.generate_icosphere(1.0, np.zeros(3), 3) >>> assembler = pymesh.Assembler(mesh) >>> L = assembler.assemble("laplacian") >>> type(L) This example assembles the Laplacian-Bel

Source from the content-addressed store, hash-verified

4from .material import Material
5
6class Assembler:
7 """ Finite element matrix assembler
8
9 Example:
10
11 >>> mesh = pymesh.generate_icosphere(1.0, np.zeros(3), 3)
12 >>> assembler = pymesh.Assembler(mesh)
13 >>> L = assembler.assemble("laplacian")
14 >>> type(L)
15 <class 'scipy.sparse.csc.csc_matrix'>
16
17 This example assembles the Laplacian-Beltrami matrix used by many graphics
18 applications. Other types of finite element matrices include:
19
20 * ``stiffness``
21 * ``mass``
22 * ``lumped_mass``
23 * ``laplacian``
24 * ``displacement_strain``
25 * ``elasticity_tensor``
26 * ``engineer_strain_stress``
27 * ``rigid_motion``
28 * ``gradient``
29 * ``graph_laplacian``
30 """
31 def __init__(self, mesh, material=None):
32 if material is None:
33 # Using dummy material.
34 material = Material.create_isotropic(mesh.dim, 1.0, 1.0, 0.0)
35 self.__mesh = mesh
36 self.__material = material
37 self.__raw_assembler = PyMesh.FEAssembler.create(
38 mesh.raw_mesh, material.raw_material)
39
40 def assemble(self, matrix_name):
41 return self.__raw_assembler.assemble(matrix_name)
42
43 @property
44 def material(self):
45 return self.__material
46
47 @material.setter
48 def material(self, material):
49 self.__material = material
50 self.__raw_assembler.set_material(material.raw_material)
51
52 @property
53 def mesh(self):
54 return self.__mesh

Callers 2

generate_minimal_surfaceFunction · 0.90

Calls

no outgoing calls

Tested by 1