/* ************************************************************************* */
/* ### Finite-Elemente-Baukasten FEMSET ### */
/* */
/* Aufbau der Systemsteifigkeitsbeziehung */
/* ====================================== */
/* */
/* Es wird die komplette Systemsteifigkeitsbeziehung (einschliesslich */
/* Einbau der Randbedingungen) aufgebaut. */
/* */
/* Input: kx - "Dimension" des Problems (1, 2 oder 3) */
/* kf - Maximale Anzahl der Freiheitsgrade pro Knoten */
/* ke - Maximale Knotenanzahl pro Element */
/* kp - Anzahl der Parameter, die ein Element beschreiben */
/* ne - Elementanzahl */
/* nk - Knotenanzahl */
/* xy - Knotenkoordinaten (0) */
/* km - Koinzidenzmatrix (1) */
/* ep - Elementparameter (2) */
/* kr - Randbedingungen (3) */
/* bk - Knotenlasten (4) */
/* sc - Federsteifigkeiten (5) */
/* li - Identische Verschiebungen (6) */
/* pu - Vorgeschriebene Verschiebungen (7) */
/* et - Element-Typen (8) */
/* la - Lager unter Winkel (9) */
/* aa - Winkel fuer Lager (10) */
/* */
/* Output: succ = 1 --> Erfolg, die Systemsteifigkeitsbeziehung wurde */
/* aufgebaut */
/* 0 --> Misserfolg */
/* */
/* Es sind grundsaetzlich zwei Typen von Funktionsaufrufen moeglich, die */
/* in ihren jeweils kuerzesten Varianten so aussehen: */
/* */
/* Der "einfache Syswbc_m-Aufruf" */
/* */
/* [succ ksys fsys] = syswbc_m (xy,km,ep,kr,bk) */
/* */
/* ermittelt die Parameter kx, kf, ke, kp, ne und nk aus den Dimensionen */
/* der uebergebenen Matrizen. */
/* */
/* Der "sichere syswbc_m-Aufruf" */
/* */
/* [succ ksys fsys] = syswbc_m (kx,kf,ke,kp,ne,nk,xy,km,ep,kr,bk) */
/* */
/* ermoeglicht der Interface-Funktion den Test der Dimensionen der */
/* uebergebenen Matrizen mit den Werten auf den ersten 6 Positionen der */ /* der Input-Parameterliste. Bei dieser Variante duerfen die Matrizen auch */
/* auch als eindimensionale Vektoren uebergeben werden. Nachdruecklich */
/* wird jedoch in jedem Fall die Uebergabe der Input-Parameter als */
/* Matrizen empfohlen. */
/* */
/* Formate der Input-Matrizen (die weniger empfehlenswerte Variante in */
/* Klammern ist jeweils nur fuer den "sicheren Femalg_m-Aufruf" gueltig): */
/* */
/* xy - nk*kx-Matrix (oder Vektor mit nk*kx Werten, nacheinander jeweils */
/* die kx Werte für einen Knotenpunkt) */
/* km - ne*ke-Matrix (oder Vektor mit ne*ke Werten, nacheinander jeweils */
/* die ke Knotennummern fuer ein Element) */
/* ep - ne*kp-Matrix (oder Vektor mit ne*kp Werten, nacheinander jeweils */
/* die kp Parameter fuer ein Element) */
/* kr - nk*kf-Matrix (oder Vektor mit nk*kf Werten, nacheinander jeweils */
/* die kf Indikatoren 0 oder 1 fuer einen Knoten) */
/* bk - nk*kf-Matrix (oder Vektor mit nk*kf Werten, nacheinander jeweils */
/* die kf Knotenlasten fuer einen Knoten) */
/* */
/* Die nachfolgend fuer den "einfachen Syswbc_m-Aufruf" beschriebenen */
/* erweiterten Varianten sind sinngemaess auch für den "sicheren Syswbc_m- */
/* Aufruf" moeglich: */
/* */
/* [succ ksys fsys] = syscom_m (xy,km,ep,kr,bk,sc) */
/* */
/* sc - nk*kf-Matrix (oder Vektor mit nk*kf Werten, nacheinander jeweils */
/* die kf Federsteifigkeiten fuer einen Knoten) */
/* */
/* [succ ksys fsys] = syscom_m (xy,km,ep,kr,bk,sc,li) */
/* */
/* li - nk*kf-Matrix (oder Vektor mit nk*kf Werten, nacheinander jeweils */ /* die Spalten der nk*kf-Matrix (Achtung, diese spaltenweise Uebergabe */
/* der Werte als Vektor unterscheidet sich von den zeilenweise in */
/* einen Vektor zu packenden Werte der uebrigen Felder) */
/* */
/* [succ ksys fsys] = syscom_m (xy,km,ep,kr,bk,sc,li,pu) */
/* */
/* pu - nk*kf-Matrix (oder Vektor mit nk*kf Werten, nacheinander jeweils */
/* die kf vorgeschriebenen Verschiebungen fuer einen Knoten) */
/* */
/* [succ ksys fsys] = syscom_m (xy,km,ep,kr,bk,sc,li,pu,et) */
/* */
/* et - ne*5-Matrix (oder Vektor mit nk*5 Werten, nacheinander jeweils */
/* die 5 charakteristischen Groessen fuer ein Element) */
/* */
/* [succ ksys fsys] = syscom_m (xy,km,ep,kr,bk,sc,li,pu,et,la,aa) */
/* */
/* la - Vektor mit nk Werten (jeweils die Kennzeichung fuer einen Konten: */
/* 1 --> spezielles Lager, 0 --> kein spezielles oder gar kein Lager) */
/* aa - Vektor mit nk Werten (jeweils der Winkel bezueglich der x-Achse, */
/* wenn an diesem Knoten ein spezielles Lager existiert). */
/* Weil diese Lagerungsart zunaechst nur fuer zweidimensionale */
/* Probleme realisiert ist, ist nur eine Winkelangabe moeglich, obwohl */
/* das Feld aa intern bereits fuer die Aufnahme von jeweils 3 Werten */
/* fuer jeden Knoten vorbereitet ist. */
/* */
/* Autor: J. Dankert */
/* ************************************************************************* */ |