Source code for edelweissfe.sets.elementset

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#  ---------------------------------------------------------------------
#
#  _____    _      _              _         _____ _____
# | ____|__| | ___| |_      _____(_)___ ___|  ___| ____|
# |  _| / _` |/ _ \ \ \ /\ / / _ \ / __/ __| |_  |  _|
# | |__| (_| |  __/ |\ V  V /  __/ \__ \__ \  _| | |___
# |_____\__,_|\___|_| \_/\_/ \___|_|___/___/_|   |_____|
#
#
#  Unit of Strength of Materials and Structural Analysis
#  University of Innsbruck,
#  2017 - today
#
#  Alexander Dummer alexander.dummer@uibk.ac.at
#  Paul Hofer Paul.Hofer@uibk.ac.at
#
#  This file is part of EdelweissFE.
#
#  This library is free software; you can redistribute it and/or
#  modify it under the terms of the GNU Lesser General Public
#  License as published by the Free Software Foundation; either
#  version 2.1 of the License, or (at your option) any later version.
#
#  The full text of the license can be found in the file LICENSE.md at
#  the top level directory of EdelweissFE.
#  ---------------------------------------------------------------------

from edelweissfe.elements.displacementelement.element import DisplacementElement
from edelweissfe.elements.marmotelement.element import MarmotElementWrapper
from edelweissfe.elements.marmotsingleqpelement.element import (
    MarmotMaterialWrappingElement,
)
from edelweissfe.sets.orderedset import ImmutableOrderedSet
from edelweissfe.utils.meshtools import extractNodesFromElementSet


[docs]class ElementSet(ImmutableOrderedSet): """A basic element set. It has a label, and a list containing unique elements. Parameters ---------- name The unique label for this element set. elements A list of elements. """ def __init__( self, label: str, elements, ): self.allowedObjectTypes = [MarmotElementWrapper, MarmotMaterialWrappingElement, DisplacementElement] super().__init__(label, elements) self._nodes = None self.elements = self.items def extractNodeSet( self, ): if not self._nodes: self._nodes = extractNodesFromElementSet(self) return self._nodes