Kildekode for kraft

from numpy import array, count_nonzero

sporhoyde_e = 0

[dokumentasjon]class Kraft(object): """Generell klasse for konsentrerte/fordelte laster."""
[dokumentasjon] def __init__(self, navn="", type=(0, 0), f=[0, 0, 0], q=[0, 0, 0], b=0, e=[0, 0, 0]): """Initialiserer :class:`Kraft`-objekt. ``sporhoyde_e`` trekkes fra ``e[0]`` for å konvertere kreftenes lastangrepspunkt med nullpunkt i skinneoverkant til mastenes lokale aksesystem med origo i mastefot. :param str navn: Identifikasjonstag for kraftens opphav :param tuple type: (Rad, etasje) for plassering i R- og D-matrise :param list f: Kraftkomponenter [x, y, z] :math:`[N]` :param list q: Kraftkomponenter for fordelt last [x, y, z] :math:`[\\frac{N}{m}]` :param list b: Utstrekning av fordelt last :math:`[m]` :param list e: Eksentrisitet fra origo [x, y, z] :math:`[m]` """ self.navn = navn self.type = type self.f = array(f) self.q = array(q) self.b = b self.e = array(e) self.e[0] -= sporhoyde_e self.e[0] = 0 if self.e[0] > 0 else self.e[0]
def __repr__(self): rep = "{} type={}\n".format(self.navn, self.type) if not count_nonzero(self.q) == 0: rep += "q*b = {}\n".format(self.q * self.b) else: rep += "f = {}\n".format(self.f) rep += "e = {}\n".format(self.e) return rep