| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys | | |  | CO2 sparen mit Ansys Topologieoptimierung | Tech Artikel , ein Fachartikel
|
Autor
|
Thema: Table-Load-Prolem (2169 mal gelesen)
|
matthiasv Mitglied
 Beiträge: 2 Registriert: 13.03.2007
|
erstellt am: 13. Mrz. 2007 10:35 <-- editieren / zitieren --> Unities abgeben:         
Grundproblem: Auf eine Reihe von Wärmequellen sollen jeweils verschiedene zeitveränderliche Leistungsdichten aufgeprägt werden. Idee: - jede Quelle wird als Component erzeugt - mit gleichem Namen wird jeweils die zugehörige Load-Table erzeugt - alle Namen der Quellen/Tables werden in Character-Array geschrieben - Aufprägen der Table Loads über *do-Schleife, die alle Quellen abläuft und die die Namen der Quellen und Table-Loads aus dem oben genannten Character-Array liest, wobei der Schleifen-Zähler auf die unterschiedlichen Positionen im Array verweist. Problem: - mit welcher Syntax ist die Table-Load in APDL aufzuführen (%character_array(x,y)% funktioniert nicht) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sven_m2k Mitglied Dipl.-Ing. Maschinenbau, wiss. MA

 Beiträge: 58 Registriert: 15.04.2005 Autodesk Inventor 11 Professional Autodesk Mechanical 2007 Ansys 11.0
|
erstellt am: 26. Mrz. 2007 08:43 <-- editieren / zitieren --> Unities abgeben:          Nur für matthiasv
Ich habe das noch nicht probiert, deshalb nur zwei Ideen, wie es gehen könnte. Da Ansys beim Abarbeiten einfach nur prüft, ob der Eintrag für die Last mit einem %-Zeichen beginnt und dann die folgende Zeichenkette als Variablenname nimmt, hilft es wahrscheinlich nicht, eine zweite Variable an diese Stelle zu setzen. Variante 1 wäre, mit STRCAT(Str1,Str2) Zeichenketten zu verbinden. Du verbindest also '%'+Array-Name+'%' und setzt dies an die Position für die Load Table. Variante 2 könnte sein, in der Schleife mit /OUT Text in eine Datei zu schreiben, also APDL-Befehle, die deine Load Table zuweisen und gleich danach mit /INP als APDL-Befehlsfolge einlesen. Vielleicht auch mal den entsprechenden Code-Abschnitt hier posten, dann kann man sich ein besseres Bild machen von dem Problem. Sven. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ife Mitglied Berechnungsdienstleister FEM
   
 Beiträge: 1397 Registriert: 29.10.2002 IFE Deutschland Simulation ANSYS Workbench MAPDL Multiphysics CFX
|
erstellt am: 26. Mrz. 2007 09:56 <-- editieren / zitieren --> Unities abgeben:          Nur für matthiasv
man kann Table- oder Function loads definieren und diese auf bspw BFE Command angeben (%name%). Weiter kann man auf bspw BFE statt selektierter Elemente eine vorher definierte Elementkomponente eintragen. ------------------ Gruesse, Frank Exius IFE Deutschland www.ife-ansys.de Mo-Fr 9:00-18:00 Uhr durchgaengig Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
matthiasv Mitglied
 Beiträge: 2 Registriert: 13.03.2007
|
erstellt am: 27. Mrz. 2007 10:13 <-- editieren / zitieren --> Unities abgeben:         
Um den Kern meines Problems noch etwas deutlicher zu machen: Die prinzipielle Aufbringung einer Table-Load ist mir schon klar. Unklar ist lediglich die Aufbringung eines in der *do-Schleife variablen Table-Namens, der bei jedem Durchlauf aus einem Character-Array gelesen werden soll. %character_array(x,y)% als Table-Load führt lediglich dazu, dass ANSYS ein Table mit dem Namen 'character_array(x,y)' sucht und nicht zum gewünschten Auslesen des Namens im zugehörigen Character-Array. Daher die Frage nach der Syntax. Gefragt ist letztlich: Kann ich in die %%-Zeichen, die eine Table-Load kennzeichnen, eine Variable als Platzhalter für den eigentlichen Table-Namen setzten? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wally1977 Mitglied

 Beiträge: 75 Registriert: 16.02.2006 Intel i7 16 Gb Ram Windows 7 Ansys 17.2
|
erstellt am: 27. Mrz. 2007 10:59 <-- editieren / zitieren --> Unities abgeben:          Nur für matthiasv
Hallo, anscheinend vestehe ich das Problem nicht so ganz denn ich verstehe dass in etwa so es gibt ein Array welches mit strings gefüllt ist jede Zeile gibt an welcher Component und welcher Load Table verwendet werden soll Sprich man soll das Array in einer *do Schleife durchlaufen lassen und die eizelnen Strings Auslesen? wenn man i als Laufvariable hat wird das Ganze dann eher so aufzurufen sein gesuchter_String=character_array(i,y) mit diesem string kann man dann ja weiterarbeiten wenn man eine Laufvariable in einen String integrieren will muss man string_name_%i% schreiben Oder verstehe ich dass ganze wirklich falsch - einfacher/verständlicher wird es wenn die entsprechende code-passage als datei angehängt wird MfG Wally ------------------ Institut für Automation Montanuniversität Leoben Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sven_m2k Mitglied Dipl.-Ing. Maschinenbau, wiss. MA

 Beiträge: 58 Registriert: 15.04.2005 Autodesk Inventor 11 Professional Autodesk Mechanical 2007 Ansys 11.0
|
erstellt am: 27. Mrz. 2007 18:06 <-- editieren / zitieren --> Unities abgeben:          Nur für matthiasv
Ich weiss nicht, ob Du meine Vorschläge schon probiert hast. Jedenfalls habe ich es mal schnell durchgespielt und Variante 1 (mit STRCAT) sollte funktionieren. Code:
! Schleifenanfang, do <bla bla> tablname='alphafho' ! anstatt 'alphafho' setzt du Dein Array(x,y) ein string1=STRCAT('%',tablname) ! das erste %-Zeichen anfügen ESEL,S,ELEM,,1 ! Element wählen und ! konvektive Last aufbringen SFE,ALL,4,CONV,0,STRCAT(string1,'%') ! das zweite %-Zeichen anfügen und konvektive Last ! als "table" aufbringen ! es steht dann also %alphafho% dort SFE,ALL,4,CONV,2,TFLUID ! bei 20 Grad Fluidtemperatur ! Schleifenende
Löst das nun Dein Problem? Ich habe das mal ohne /SOLU mit einem einfachen SOLID-Element und natürlich der vorhandenen Funktion %alphafho% durchlaufen lassen und es funktioniert. Die konvektive Last wird auf die entsprechende Elementseite aufgebracht. Du kannst prinzipiell wahrscheinlich auch die Zuweisung zu tablname weglassen und schreibst gleich bei der ersten STRCAT-Funktion anstatt des tablname dein Verweis auf das array(x,y) hin. Sven. [Diese Nachricht wurde von Sven_m2k am 27. Mrz. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |