Dein letzter Hinweis hoert sich nach UMAT an oder? Naja eigentlich egal.
Die Variable kann mitunter verschieden heißen. Nehmen wir mal kurz die UMAT:
hier das Interface der Routine:
SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
1 RPL,DDSDDT,DRPLDE,DRPLDT,
2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
Unter CMNAME findet man im manual:
CMNAME User-defined material name, left justified. Some internal material models are given names starting with the “ABQ_” character string. To avoid conflict, you should not use “ABQ_” as the leading string for CMNAME.
Schau mal in den Interfaces der Routinen nach, welche du speziell verwenden moechtest. Dort ist das sicherlich auch irgendwie moeglich. Mit der Unterscheidung hast du natuerlich recht. Eine einfache IF-Anweisung reicht da aus.
Beispiel: Alles ist aus einem Material (zB Wald- und Wiesenstahl) aber Part1 soll veraendert werden. Dann modellier das ganze Modell und gib allen Elementen außer Part1 das Material MatALLGEMEIN (Parameter waehlst du). Den restlichen Elementen gibst du das Material MatPART1 (selbe Parameter, wenn das so sein soll).
In deiner Routine testest du dann das CMNAME ab:
IF. CMNAME.EQ.'MatPART1' THEN ... ELSE ...
Sowas wuerde ich immer an einem ganz kleinen Modell abtesten. Einfach um sicher zugehen, dass die Variable auch wirklich als string uebergeben wird und die Routine das macht, was ich will bzw. von ihr erwarte.
------------------
==========
== Dingsen ==
==========
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP