Guten Tag,
ich beschäftige mich derzeit mit der Programmierung eigener Elemente in Ansys. In der Subroutine UserElem werden mehrere Input Argumente genutzt, die alle in der entsprechenden Dokumentation beschrieben sind. Eines dieser Argumente ist das Feld keyMtx. KeyMtx ist im UserElem.F Beispielcode ein eindimensionales Feld mit 10 Einträgen, die jeweils 0 oder 1 Werte annehmen sollen.
Woher kommen die Einträge von keyMtx ? Die Einträge setze ich nicht im Programmcode von UserElem.F, trotzdem erhalte ich bei Ausgabe dieses Feldes über ein Ansys Beispiel Projekt, an genau den benötigten Stellen die Einsen bzw. Nullen. Dadurch wird unter anderem die Berechnung der Steifigkeitsmatrix durchgeführt.
Ich teste Änderungen von UserElem.F am Beispiel des 20 Knoten Würfels, der standardmäßig als Beispielcode hinterlegt ist. Über einen UPF Command binde ich User300 in ein APDL Skript ein und schaue mir anschließend im Ansys Output Window die Funktionsweise an.
Interessanterweise erhalte ich bei Einfügen eines write(*,*) keyMtx Befehls im UserELem.F Code im Ansys Output Window zwei Ausgaben. In der ersten Ausgabe bekomme ich ein keyMtx Feld, das die Einsen und Nullen an den richtigen Stellen aufweist. In der zweiten Ausgabe erhalte ich ein Feld in dem diese Werte überhaupt nicht passen und folglich z.B die Steifigkeitsmatrix nicht errechnet werden würde(Was aber dennoch passiert). Mit letzterer Ausgabe bzw. letztem Feld wäre die IF Bedingung
IF(keyMtx(1).EQ.1)
zur Erstellung der Matrix nicht erfüllt.
Mit besten Grüßen
Christopher
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP