Source code for torch_fem.assemble.builtin

from .element_assembler import ElementAssembler
from .node_assembler import NodeAssembler

from ..functional import dot, mul, sym, ddot, eye, trace


[docs]class LaplaceElementAssembler(ElementAssembler): r"""The element laplace assembler .. math:: K = \int_{\Omega}\nabla u \cdot \nabla v \mathrm{d}v """
[docs] def forward(self, gradu, gradv): K = dot(gradu, gradv) return K
[docs]class MassElementAssembler(ElementAssembler): r"""The element mass assembler .. math:: K = \int_{\Omega} u v \mathrm{d}v """
[docs] def forward(self, u, v): K = mul(u, v) return K
class ConstNodeAssembler(NodeAssembler): r"""The const node assembler .. math:: f = \int_{\Omega} c\cdot u \mathrm{d}v """ def __post_init__(self, c=1): self.c = c def forward(self, u, v): f = self.c * u return f __all__ = ["LaplaceElementAssembler", "MassElementAssembler", "ConstNodeAssembler"]