| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys |
Autor
|
Thema: APDL (Array Indizierung, Speicherung, Laden) (15691 mal gelesen)
|
MichaelHRO Mitglied Student Maschinenbau
Beiträge: 35 Registriert: 11.11.2005
|
erstellt am: 14. Nov. 2005 01:04 <-- editieren / zitieren --> Unities abgeben:
In den letzten zwei Wochen habe ich begonnen mich mit Ansys auseinander zu setzen und musste schnell merken es ist ein komplexes Programm. Nun haben sich einige Fragen anmgesammelt und ich hoffe die Gemeinde nicht mit dieser Welle zu erschlagen. Hier ein paar grundlegende Fragen: Berechnungen mit Matrizen koennen in Ansys bzw. APDL genauso wie in MatLab oder Fortran vorgenommen werden? Folgendes Beispiel soll dies ein wenig verdeutlichen. A= 1 2 3 Das ist erstmal ein Array 3x3 und die 2 3 4 Indizierung A(2,3)=4 und A(3,2)=8. 2 8 9 A(Zeilen,Spalten,Ebenen) Als naechstes moechte ich die Arrays aus meinen Berechnungen in ein File schreiben um es spaeter in einem anderen Makro wieder verwenden zu koennen.
*VWRITE,A, , , , , (txt) *CFCLOS Nach dem Öffnen ist das File leider leer.(?) Wie kann bei einem gefüllten File im späteren Verlauf explizit ein Wert auslesen oder wird es darauf hinauslaufen das File in einem neuen Array zu schreiben? Vielen Dank soweit für die freundliche Unterstützung!
------------------ Michael
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sören24 Mitglied Bauteilprüfung und Berechnung
Beiträge: 102 Registriert: 30.07.2005
|
erstellt am: 14. Nov. 2005 08:14 <-- editieren / zitieren --> Unities abgeben: Nur für MichaelHRO
|
ife Mitglied Berechnungsdienstleister FEM
Beiträge: 1397 Registriert: 29.10.2002 IFE Deutschland Simulation ANSYS Workbench MAPDL Multiphysics CFX
|
erstellt am: 14. Nov. 2005 09:24 <-- editieren / zitieren --> Unities abgeben: Nur für MichaelHRO
da wuerde ich mir u.a. *MOPER und *MWRITE ansehen. ANSYS hat zwar gaengige Operationen wie transponieren, invertieren einer Matrix u.a. (moeglicherweise intern auf FORTRAN math.Libraries zurueckgreifend), ist aber ein FEM Programm, Schwerpunkt Simulation. Im Vergleich hat bspw Matlab mehr an matrizenspezifischen Funktionen wie Rank, Trace u.a. da Mathematik Software, mit APDL kann man auch diese realisieren. ------------------ Gruesse, Frank Exius IFE Deutschland Mo-Fr 9:00-18:00 Uhr durchgaengig Dienstleistung in ANSYS www.ife-ansys.de Simulation Berechnung FEM Digital Prototyping Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MichaelHRO Mitglied Student Maschinenbau
Beiträge: 35 Registriert: 11.11.2005
|
erstellt am: 14. Nov. 2005 11:36 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank Sören... Ich habe die Werte mit folgenden Programmtext in einen scalaren Parameter geschrieben und anschließend in eine Tabelle.data zu geschrieben. Vorher habe ich ein Beispielkörper berechnen lassen:
/POST1 !sort values of "von Mises" stress NSORT,S;EQV !get node number for maximum value of last sorted item *get,maxvonmises,sort,,max !get node number where maximum value occurs *get,maxknotvonmises,sort,,imax *get,maxvonmisesX,node,maxknotvonmises,S,1 *get,maxvonmisesY,node,maxknotvonmises,S,1 parsav,scalar,'Tabelle','txt','' aber ich glaube die folgenden Anweisungen sind nicht geeignet, da ich die Aussage bekomme: Tabelle not defined for vector operation. *vfill,Tabelle,data,maxvonmises,maxknotvonmises,... maxvonmisesX,maxvonmisesY Wie bekomme ich die Werte wieder in Ansys unter verschiedenen Parametern abgelegt? Leider bekomme ich die Werte aus der Textdatei (Tabelle) nicht wieder heraus um den jeweiligen Einzelwert anwenden zu können.
------------------ Michael Status: Student im 5.Semester Maschinenbau Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MichaelHRO Mitglied Student Maschinenbau
Beiträge: 35 Registriert: 11.11.2005
|
erstellt am: 14. Nov. 2005 12:09 <-- editieren / zitieren --> Unities abgeben:
Hallo Ife... Ich habe mal verscuht den Begriff in der Hilfe ein zu verstehen. Leider ist es mir aber nicht ganz gelungen. Wie kann ich eine Schleife aufbauen um die Werte der Reihe nach zu speichern?
*DO,i,A,B *DO,t,C,D *mwrite,Array,Matrix,data,,ti1,(((Array(t,i,1),t=1,n1)... i=1,n2,k=1,n3) *ENDDO *ENDDO k soll 1 seinen da ich keine Ebenen brauche. Hier fehlen noch die Begriffe *use und /Input. Ich weiß aber nicht wie diese hier angewendet werden. Danke...!!! ------------------ Michael Status: Student im 5.Semester Maschinenbau Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sören24 Mitglied Bauteilprüfung und Berechnung
Beiträge: 102 Registriert: 30.07.2005
|
erstellt am: 14. Nov. 2005 13:56 <-- editieren / zitieren --> Unities abgeben: Nur für MichaelHRO
Hallo also wie man Daten aus Dateien einliest kann ich dir nicht sagen, das hab ich auch noch nicht gemacht. Vielleicht geht das mit *vread. Die Tabellen mußt du immer mit dem Index der jeweiligen Zelle ansprechen, sonst klappt das nicht. *use kannst du eine Datei einbinden, deren Inhalt dasnn ausgeführt wird. Mit /input wechselst du das Inputfile Gruß Sören student@tu-ilmenau 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: 14. Nov. 2005 14:27 <-- editieren / zitieren --> Unities abgeben: Nur für MichaelHRO
[updated & ergaenzt 14.12.'05 17:15Uhr] *MWRITE hat die Schleifenstruktur im Kommando, keine *DO *ENDDO erforderlich. *MWRITE inkl. folgender Formatierungszeile in Datei anlegen und mit /INPUT diese Datei im GUI (grafical user interface) zur Ausfuehrung einlesen. In batch-Modus ist der Umweg ueber /INPUT fuer Ausfuehrung *MWRITE nicht erforderlich. *VWRITE ist an sich erstmal klarer in der Handhabung. *MWRITE ist schneller fuer grosse Datenfelder. Analoges Einlese Kommando zu *MWRITE ist *VREAD - ebenfalls mit integrierter Schleifenstruktur, falls via /INPUT ausgefuehrt. *VREAD kann aber auch im GUI ausgefuehrt werden, Schleifenstruktur ist aber dabei so nicht wirklich nutzbar. ------------------ Gruesse, Frank Exius IFE Deutschland Mo-Fr 9:00-18:00 Uhr durchgaengig Dienstleistung in ANSYS www.ife-ansys.de Simulation Berechnung FEM Digital Prototyping Identifikation bei Fragen im ANSYS Forum erwuenscht - Name, Firma/Bildungsstaette. Identifikation im Beitrag oder im persoenlichen Profil, oder in eMail an Moderator IFE - in letzterem Fall bitte Thema Beitrag als Referenzpunkt angeben. Danke. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MichaelHRO Mitglied Student Maschinenbau
Beiträge: 35 Registriert: 11.11.2005
|
erstellt am: 15. Nov. 2005 08:49 <-- editieren / zitieren --> Unities abgeben:
Ich habe einige Varianten versucht und leider gelingt es mir nicht die richtige Lösung zu finden. TE=10 SE=10 *mwrite,ARRAY,Matrix,data,,tik,(((ARRAY(t,i,k),t=1,TE), i=1,SE),k=1,1) Es erscheint folgende Fehlermeldung! Subcscript range error. Parameter ARRAY is dimensioned as 10x10x1, but location 0x8x1 is being requested Ich kann nicht ganz nachvollziehen wo er eine Indizierung 0 erhalten soll. Vielleicht habe ich etwas übersehen? Danke!!! ------------------ Michael Status: Student im 5.Semester Maschinenbau 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: 15. Nov. 2005 09:09 <-- editieren / zitieren --> Unities abgeben: Nur für MichaelHRO
gueltige Indexe sind IJK. Eine gueltige *MWRITE Anweisung saehe bspw so aus: *MWRITE,array(1,1,1),matrix,dat,,JIK,4,3 (4F6.0) ------------------ Gruesse, Frank Exius IFE Deutschland Mo-Fr 9:00-18:00 Uhr durchgaengig Dienstleistung in ANSYS www.ife-ansys.de Simulation Berechnung FEM Digital Prototyping Identifikation bei Fragen im ANSYS Forum erwuenscht - Name, Firma/Bildungsstaette. Identifikation im Beitrag oder im persoenlichen Profil, oder in eMail an Moderator IFE - in letzterem Fall bitte Thema Beitrag als Referenzpunkt angeben. Danke. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MichaelHRO Mitglied Student Maschinenbau
Beiträge: 35 Registriert: 11.11.2005
|
erstellt am: 15. Nov. 2005 10:33 <-- editieren / zitieren --> Unities abgeben:
Jetzt habe auch ich es hinbekommen. Freu... *mwrite,ARRAY,AMatrix,data,,JIK,TE,SE,1 (4F6.6) Den Befehl *mread habe ich in der Ansys Hilfe nicht gefunden. Der Befehl *vread findet in dem unteren Beispiel Anwendung. ARRAY= !delete ARRAY for following test *CREATE,ansuitmp *VREAD,ARRAY,AMatrix,data,,JIK,TE,SE,1 *END /INPUT,ansuitmp
Alles ist ohne Fehlermeldung aber ich kann den ARRAY nicht finden. *status,ARRAY
------------------ Michael Status: Student im 5.Semester Maschinenbau Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MichaelHRO Mitglied Student Maschinenbau
Beiträge: 35 Registriert: 11.11.2005
|
erstellt am: 15. Nov. 2005 11:12 <-- editieren / zitieren --> Unities abgeben:
Ist es moeglich, dass der Array mit dem Ende des Makros, wieder verschwindet? Wie muss die Uebergabe des Array gestaltet werden? Wie kann ich beim Auslesen auch auf eine Formatiereung zurueckgreifen? (F4.2)
------------------ Michael Status: Student im 5.Semester Maschinenbau 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: 15. Nov. 2005 12:42 <-- editieren / zitieren --> Unities abgeben: Nur für MichaelHRO
*MREAD gibt's auch nicht - sorry, Tippfehler korrigiert.Syntax *VREAD bspw: *VREAD,arraback(1,1,1),file,dat,,JIK,4,3,, (4F6.0) ------------------ Gruesse, Frank Exius IFE Deutschland Mo-Fr 9:00-18:00 Uhr durchgaengig Dienstleistung in ANSYS www.ife-ansys.de Simulation Berechnung FEM Digital Prototyping Identifikation bei Fragen im ANSYS Forum erwuenscht - Name, Firma/Bildungsstaette. Identifikation im Beitrag oder im persoenlichen Profil, oder in eMail an Moderator IFE - in letzterem Fall bitte Thema Beitrag als Referenzpunkt angeben. Danke. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nbuhl Mitglied Dipl.-Ing.
Beiträge: 52 Registriert: 25.06.2007 Win XP Prof. 2,8 GHz DualCore 3GB RAM WF2 - Studiversion CATIA V5 - Studiversion Ansys Classic V11SP1 - Studiversion
|
erstellt am: 12. Mai. 2009 11:25 <-- editieren / zitieren --> Unities abgeben: Nur für MichaelHRO
Hallo Leute! Ich habe auch ein kleines Problem mit dem MWRITE-Befehl. Bei mir schreibt Ansys immer den nachfolgenden Kommentar in die File und nicht das Array? Irgendwie verstehe ich die Welt nicht mehr. Kann mir jemand kurz erklären wozu diese n1-n3 Parameter gut sind? Was genau gibt das Label an? Irgendwie verstehe ich das in der Ansys-Hilfe nicht. Hier der Befehl wie ich ihn zur Zeit verwende: *MWRITE,elem_mat,'dateiname','txt',,IJK,1 Danke euch schon mal im Voraus! Gruß! nico Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
arnd13 Mitglied Dipl. Ing.
Beiträge: 735 Registriert: 05.11.2008
|
erstellt am: 12. Mai. 2009 12:48 <-- editieren / zitieren --> Unities abgeben: Nur für MichaelHRO
Hast Du auch ein Formatzeile mitangegeben? Bsp.: (4F6.0) Sonst weiß Ansys nicht, welche Zahlen bzw. Zeichen aus der Matrix in das File geschrieben werden sollen. n1 ... n3 geben an, in welcher Zeile (oder Spalte oder Ebene) mit dem Schreiben ins Textfile angefangen werden soll. Kann freibleiben, wenn alle Felder ins Textfile geschrieben werden sollen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nbuhl Mitglied Dipl.-Ing.
Beiträge: 52 Registriert: 25.06.2007 Win XP Prof. 2,8 GHz DualCore 3GB RAM WF2 - Studiversion CATIA V5 - Studiversion Ansys Classic V11SP1 - Studiversion
|
erstellt am: 12. Mai. 2009 16:07 <-- editieren / zitieren --> Unities abgeben: Nur für MichaelHRO
|
solve1 Mitglied Berechnungsingenieur
Beiträge: 624 Registriert: 27.05.2008 Ansys APDL Ansys WorkBench
|
erstellt am: 12. Mai. 2009 16:10 <-- editieren / zitieren --> Unities abgeben: Nur für MichaelHRO
hi, nur mal so damit keiner den Eindruck gewinnt das Ansys sich da etwas schwer mit tut, Arrays / Parameter in txt-files zu schreiben und daraus zu lesen. Wenns wirklich nur das sein soll, empfiehlt sich nat. die Kombi aus parsav und parres
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|