Talsperrenberechnung nach A.Holzner [1]
Zur Berechnung einer Talsperre werden mehrere Systemberechnungen überlagert. CODE-ASTER bietet dafür eine sehr komfortable Möglichkeit an ; ohne dabei eine Spannungsmatrix neu übergeben zu müssen. Die beiden Aufgaben bestehen aus der Berechnung des Eigengewichts mit einer Anisotropie-Matrix, die sich nach einem mittleren begleitenden Zylinder mitbewegt und aus der Berechnung der Wasserlast, die auf einem homogenen System stattfindet. Beide Systeme berücksichtigen das Aufgehen der Sohlfuge. Die Ergebnisse der talparallelen Verschiebungen werden nachfolgend dargestellt.
Dieses Beispiel entstand bei der Anpassung der Geometrie-Eingaben für die Talsperrenberechnung nach der Vorgangsweise aus der Dissertation von A. HOLZNER [1].
HOLZNER hat aufbauend auf die Vorgangsweise aus den Berechnungen der Talsperren von Schlegeis, Zillergründl und Kölnbrein eine Geometrie "Optimierung" nach einem Parametermodell durchgeführt.
Die Talsperren-Geometrie wird mittels Kegelschnitten --nach WIDMANN-- definiert.
Nach HOLZNER [1] gilt:
"Um Rückschlüsse auf die Eignung einer Talsperrenform ziehen zu können wird das Geometriemodell mit einem Berechnungs- und Auswertemodell kombiniert. Die damit erreichte volle Parametrisierung eines komplexen Talsperren-Modells ermöglicht eine genaue Analyse von Geometrievariationen, und die damit einhergehende Beurteilung von Änderungen in der Spannungssituation und Standsicherheit."
Nach Vergleich der bekannten Untersuchungen von "großen Talsperren" ist es vielfach angebracht eine solche Parameter-Studie durchzuführen, um die Einflüsse der verschiedenen Geometrie-Variationen abschätzen zu können. Durch die Einfachkeit der Durchführung nach Holzner [1] ist dies vom Aufwand jedenfalls vertretbar, auch wenn damit nicht jede Detailerfassung des Untergrund-Verhaltens mit begrenztem Aufwand einfließen kann.
Nachfolgend werden einige Ergebnisse eines Berechnungsfalles der Variationen mittels CODE-ASTER aufgezeigt.
Bild 1 ) CODE-ASTER Modell der
Talsperre Kölnbrein Wasserlast Verschiebungen
Bild 2 ) CODE-ASTER: Talparallele
Verschiebungen Eigengewicht + Wasserlast
Bild 3 ) CODE-ASTER: Spannungen S22
nach CODE-ASTER mittels MAJAVI2 [2] aufgetragen
(Test des neuen MAJAVI2)
(Test des neuen MAJAVI2)
CODE-ASTER GEOMETRIE:
========================
CODE-ASTER CODE:
========================
DEBUT(LANG='ENG',);
# PATRON
# ANALYSE STATIQUE
# 3D
# MISE EN DONNEES
MAIL0=LIRE_MAILLAGE(UNITE=20,
FORMAT='ASTER',
INFO=1,);
# --- the normal vectors ar O.K. ---
#MAIL0=MODI_MAILLAGE(reuse =MAIL0,
# MAILLAGE=MAIL0,
# ORIE_NORM_COQUE=_F(GROUP_MA=('F_C_SPER','F_C_FELS',),),
# INFO=2,);
MAIL0=DEFI_GROUP(reuse =MAIL0,
MAILLAGE=MAIL0,
CREA_GROUP_MA=(_F(NOM='F_WSLOAD',
GROUP_MA='F_WS_SPE',),
_F(NOM='TOUT',
UNION=('E_SPERRE','E_FELS',),),
_F(NOM='TOUT_SH',
UNION=('E_SPERRE','E_FELS','F_WSLOAD',),),),
CREA_GROUP_NO=(_F(GROUP_MA='F_C_Fels',
NOM='N_C_FELS',),
_F(GROUP_MA='F_C_Sper',
NOM='N_C_SPER',),
_F(GROUP_MA='E_CON_SW',
NOM='SPRINGS',),
_F(GROUP_MA='E_CON_SW',
NOM='N_CON_SW',),
_F(GROUP_MA='E_CON_FW',
NOM='N_CON_FW',),),);
MAIL=CREA_MAILLAGE(MAILLAGE=MAIL0,
CREA_POI1=_F(NOM_GROUP_MA='SPRINGS',
GROUP_NO='SPRINGS',),
INFO=1,);
MODMECA=AFFE_MODELE(MAILLAGE=MAIL,
AFFE=(_F(GROUP_MA='TOUT',
PHENOMENE='MECANIQUE',
MODELISATION='3D',),
_F(GROUP_MA='F_WSLOAD',
PHENOMENE='MECANIQUE',
MODELISATION='3D',),
_F(GROUP_MA='SPRINGS',
PHENOMENE='MECANIQUE',
MODELISATION='DIS_T',),),);
# with cyl. orthotropic Concrete Moduls
CAR_ORGL=AFFE_CARA_ELEM(MODELE=MODMECA,
DISCRET=_F(CARA='K_T_D_N',
GROUP_MA='SPRINGS',
VALE=(1.0,1.0,1.0,),),
MASSIF=_F(GROUP_MA='E_SPERRE',
ANGL_AXE=(90.0,90.0,),
ORIG_AXE=(0.0,242.981538,186.0,),),);
# MASSIF=_F(GROUP_MA='TOUT',
# ANGL_REP=(0.0,0.0,0.0,),), );
CAR_ORWL=AFFE_CARA_ELEM(MODELE=MODMECA,
DISCRET=_F(CARA='K_T_D_N',
GROUP_MA='SPRINGS',
VALE=(1.0,1.0,1.0,),),);
PLAYZERO=DEFI_CONSTANTE(VALE=0.0,);
# BETON ABAQUS
# Material - orthotrop par. Zylinder
ZylR = 285.96;
ZylX = 0.0;
E_ll = 20000.0;
nu_l = 0.3;
G_l = (E_ll / (2 * (1 + nu_l)));
E_tt = 200.0;
nu_t = 0.003;
G_t = (E_tt / (2 * (1 + nu_l)));
# tanA=(X-ZylX)/ZylR * 10 for diagram
Alpha = FORMULE(VALE='57.3*100*atan((TEMP-ZylX)/(1*ZylR))',
NOM_PARA='TEMP',);
Cos2A = FORMULE(VALE='1.0/(((TEMP-ZylX)/(1*ZylR))**2 + 1)',
NOM_PARA='TEMP',);
Sin2A = FORMULE(VALE='((TEMP-ZylX)/(1*ZylR))**2/(((TEMP-ZylX)/(1*ZylR))**2 + 1)',
NOM_PARA='TEMP',);
Fu_E_ll = FORMULE(VALE='Cos2A(TEMP)*E_ll + Sin2A(TEMP)*E_tt',
NOM_PARA='TEMP',);
Fu_E_tt = FORMULE(VALE='Sin2A(TEMP)*E_ll + Cos2A(TEMP)*E_tt',
NOM_PARA='TEMP',);
# =============
ListA=DEFI_LIST_REEL(DEBUT=-250.0,
INTERVALLE=_F(JUSQU_A=250.0,
NOMBRE=20,),);
fonA=CALC_FONC_INTERP(FONCTION=Alpha,
LIST_PARA=ListA,
PROL_DROITE='CONSTANT',
PROL_GAUCHE='CONSTANT',);
fonB=CALC_FONC_INTERP(FONCTION=Fu_E_ll,
LIST_PARA=ListA,
PROL_DROITE='CONSTANT',
PROL_GAUCHE='CONSTANT',);
fonC=CALC_FONC_INTERP(FONCTION=Fu_E_tt,
LIST_PARA=ListA,
PROL_DROITE='CONSTANT',
PROL_GAUCHE='CONSTANT',);
IMPR_FONCTION(FORMAT='XMGRACE',
UNITE=52,
COURBE=(_F(FONCTION=fonA,
LIST_PARA=ListA,
LEGENDE='Winkel fuer Zylinder',
STYLE=2,
COULEUR=4,
MARQUEUR=5,),
_F(FONCTION=fonB,
LIST_PARA=ListA,
LEGENDE='E_Modul LL',
STYLE=1,
COULEUR=3,
MARQUEUR=3,),
_F(FONCTION=fonC,
LEGENDE='E_Modul TT',
COULEUR=2,
MARQUEUR=2,),),
TITRE='Begleitender Zyliner mit E-Modul Verteilung',
BORNE_Y=(-4500.0,24000.0,),
GRILLE_Y=25.0,
LEGENDE_X='Abstand von Sperrenmitte',
LEGENDE_Y='E-Moduli, Alpha*100',);
# ----------------------------------
#BETONFr=DEFI_MATERIAU(ELAS_ORTH=_F(E_L=20000.0,
# E_T=200.0,
# E_N=20000.0,
# NU_LT=0.003,
# NU_LN=0.3,
# NU_TN=0.003,
# G_LT=76.920,
# G_LN=7692.0,
# G_TN=76.920,
# RHO=0.00250,),);
BETONFr=DEFI_MATERIAU(ELAS_ORTH=_F(E_L=E_ll,
E_T=E_tt,
E_N=E_ll,
NU_LT=nu_t,
NU_LN=nu_l,
NU_TN=nu_t,
G_LT=G_t,
G_LN=G_l,
G_TN=G_t,
RHO=0.0025,),);
BETON=DEFI_MATERIAU(ELAS=_F(E=20000.0,
NU=0.3,
RHO=0.0025,),);
PROPS=DEFI_MATERIAU(ELAS=_F(E=0.21,
NU=0.3,
RHO=1e-06,
ALPHA=0.01,),);
EMod=DEFI_CONSTANTE(VALE=20000.0,);
Rho_bet=DEFI_CONSTANTE(VALE=0.0025,);
NU=DEFI_CONSTANTE(VALE=0.3,);
BET_EC=DEFI_MATERIAU(ELAS_FO=_F(E=EMod,
NU=NU,
RHO=Rho_bet,
B_ENDOGE=1.5e-05,),
BETON_ECRO_LINE=_F(D_SIGM_EPSI=-4000.0,
SYT=12.0,
SYC=30.0,),);
# Erste Testversion
CONTEG=DEFI_CONTACT(MODELE=MODMECA,
INFO=1,
FORMULATION='CONTINUE',
FROTTEMENT='COULOMB',
ALGO_RESO_GEOM='POINT_FIXE',
ITER_GEOM_MAXI=10,
ALGO_RESO_CONT='POINT_FIXE',
ITER_CONT_MAXI=30,
RESI_FROT=0.001,
ZONE=_F(APPARIEMENT='MAIT_ESCL',
GROUP_MA_MAIT='F_C_Fels',
GROUP_MA_ESCL='F_C_Sper',
CONTACT_INIT='OUI',
ALGO_CONT='STANDARD',
COEF_CONT=100.0,
COULOMB=45.0,
SEUIL_INIT=100.0,
ALGO_FROT='STANDARD',),);
# DIST_MAIT=PLAYZERO,
CONTWL0=DEFI_CONTACT(MODELE=MODMECA,
INFO=1,
FORMULATION='CONTINUE',
FROTTEMENT='COULOMB',
ALGO_RESO_GEOM='POINT_FIXE',
REAC_GEOM='CONTROLE',
NB_ITER_GEOM=10,
ALGO_RESO_CONT='POINT_FIXE',
ITER_CONT_MAXI=30,
RESI_FROT=0.001,
ZONE=_F(APPARIEMENT='MAIT_ESCL',
GROUP_MA_MAIT='F_C_Fels',
GROUP_MA_ESCL='F_C_Sper',
CONTACT_INIT='OUI',
ALGO_CONT='STANDARD',
COULOMB=45.0,
SEUIL_INIT=100.0,
ALGO_FROT='STANDARD',),);
# CONTACT_INIT='OUI',
CONTWL=DEFI_CONTACT(MODELE=MODMECA,
INFO=2,
FORMULATION='CONTINUE',
FROTTEMENT='COULOMB',
RESI_GEOM=0.001,
RESI_FROT=0.01,
ZONE=_F(APPARIEMENT='MAIT_ESCL',
GROUP_MA_MAIT='F_C_Fels',
GROUP_MA_ESCL='F_C_Sper',
SANS_GROUP_NO=('N_CON_SW','N_CON_FW',),
CONTACT_INIT='OUI',
ALGO_CONT='STANDARD',
COEF_CONT=100.0,
COULOMB=45.0,
SEUIL_INIT=100.0,
ALGO_FROT='STANDARD',),);
GROUND=DEFI_MATERIAU(ELAS=_F(E=20000.0,
NU=0.3,
RHO=0.0018,),);
CHMATFr=AFFE_MATERIAU(MAILLAGE=MAIL,
AFFE=(_F(GROUP_MA='E_SPERRE',
MATER=BETONFr,),
_F(GROUP_MA='E_FELS',
MATER=GROUND,),
_F(GROUP_MA='SPRINGS',
MATER=PROPS,),),);
CHMAT=AFFE_MATERIAU(MAILLAGE=MAIL,
AFFE=(_F(GROUP_MA='E_SPERRE',
MATER=BETON,),
_F(GROUP_MA='E_FELS',
MATER=GROUND,),),);
# CONDITIONS AUX LIMITES ET CHARGEMENT
#POINT A : ENCASTREMENT
BLOQU_GL=AFFE_CHAR_MECA(MODELE=MODMECA,
DDL_IMPO=_F(GROUP_NO='K_FE_LAG',
LIAISON='ENCASTRE',),);
BLOQU_CE=AFFE_CHAR_MECA(MODELE=MODMECA,
DDL_IMPO=_F(GROUP_NO='K_FE_LAG',
LIAISON='ENCASTRE',),
LIAISON_GROUP=(_F(GROUP_NO_1='N_CON_SW',
GROUP_NO_2='N_CON_FW',
DDL_1='DX',
COEF_MULT_1=1.0,
DDL_2='DX',
COEF_MULT_2=-1.0,
COEF_IMPO=0.0,),
_F(GROUP_NO_1='N_CON_SW',
GROUP_NO_2='N_CON_FW',
DDL_1='DY',
COEF_MULT_1=1.0,
DDL_2='DY',
COEF_MULT_2=-1.0,
COEF_IMPO=0.0,),
_F(GROUP_NO_1='N_CON_SW',
GROUP_NO_2='N_CON_FW',
DDL_1='DZ',
COEF_MULT_1=1.0,
DDL_2='DZ',
COEF_MULT_2=-1.0,
COEF_IMPO=0.0,),),);
BLOQU_TO=AFFE_CHAR_MECA(MODELE=MODMECA,
DDL_IMPO=_F(GROUP_NO='K_FE_LAG',
LIAISON='ENCASTRE',),
LIAISON_GROUP=(_F(GROUP_NO_1='N_C_SPER',
GROUP_NO_2='N_C_FELS',
DDL_1='DX',
COEF_MULT_1=1.0,
DDL_2='DX',
COEF_MULT_2=-1.0,
COEF_IMPO=0.0,),
_F(GROUP_NO_1='N_C_SPER',
GROUP_NO_2='N_C_SPER',
DDL_1='DY',
COEF_MULT_1=1.0,
DDL_2='DY',
COEF_MULT_2=-1.0,
COEF_IMPO=0.0,),
_F(GROUP_NO_1='N_C_SPER',
GROUP_NO_2='N_C_FELS',
DDL_1='DZ',
COEF_MULT_1=1.0,
DDL_2='DZ',
COEF_MULT_2=-1.0,
COEF_IMPO=0.0,),),);
#POINT B : FORCE IMPOSEE
CHARGT=AFFE_CHAR_MECA(MODELE=MODMECA,
PESANTEUR=_F(GROUP_MA='E_SPERRE',
GRAVITE=9.81,
DIRECTION=(0.0,0.0,-1.0,),),);
# FORCE_INTERNE=_F(GROUP_MA='E_SPERRE',
# FZ=-0.024,),
#Z_Hor = 200.0;
Z_Hor = 186.0;
WatFa = 0.01;
#WatFa = 1e-09;
# Herabgesetzte Wasserlast zum Testen des Kontaktes
# WatFa = 1e-08;
f_Wat = FORMULE(VALE='WatFa*(Z_Hor-Z)',
NOM_PARA='Z',);
CHARGW=AFFE_CHAR_MECA_F(MODELE=MODMECA,
PRES_REP=_F(GROUP_MA='F_WSLOAD',
PRES=f_Wat,),);
#
# FONCTION
NUM_CAL1 = 1;
NUM_CAL2 = 1;
NUM_CALS = (NUM_CAL1 + NUM_CAL2);
NNN1 = NUM_CAL1;
NNN2 = NUM_CALS;
List1=DEFI_LIST_REEL(DEBUT=0.0,
INTERVALLE=_F(JUSQU_A=1.0,
NOMBRE=NUM_CAL1,),);
List2=DEFI_LIST_REEL(DEBUT=1.0,
INTERVALLE=_F(JUSQU_A=2.0,
NOMBRE=NUM_CAL2,),);
F1=DEFI_FONCTION(
NOM_PARA='INST',
VALE=(0.0 ,0.0 ,
1.0 ,1.0 ,),);
F2=DEFI_FONCTION(
NOM_PARA='INST',
VALE=(1.0 ,0.0 ,
2.0 ,1.0 ,),);
# ===========================================================
# CALCUL DES 1. STAT (EG)
# ===========================================================
#RESU1=MECA_STATIQUE(MODELE=MODMECA,
# CHAM_MATER=CHMATFr,
# CARA_ELEM=CAR_ORGL,
# EXCIT=(_F(CHARGE=BLOQUAGE,),
# _F(CHARGE=CHARGT,),),);
# for failure exception
#try:
# RESU1=STAT_NON_LINE(....
#except:
# pass
#....
RESU1=STAT_NON_LINE(MODELE=MODMECA,
CHAM_MATER=CHMATFr,
CARA_ELEM=CAR_ORGL,
EXCIT=(_F(CHARGE=CHARGT,
FONC_MULT=F1,),
_F(CHARGE=BLOQU_GL,),),
CONTACT=CONTEG,
INCREMENT=_F(LIST_INST=List1,),
METHODE='NEWTON',
NEWTON=_F(PREDICTION='ELASTIQUE',
MATRICE='TANGENTE',
REAC_ITER=0,),
CONVERGENCE=_F(RESI_GLOB_RELA=1e-05,
ITER_GLOB_MAXI=40,
ARRET='OUI',),
SOLVEUR=_F(METHODE='MULT_FRONT',
NPREC=8,),);
# _F(CHARGE=BLOQU_CE,),),
# CONTACT=CONTWL,
# CARA_ELEM=CAR_ORGL,
# ===========================================================
# CALCUL DES 2. STAT (WL)
# ===========================================================
#RESU2=MECA_STATIQUE(MODELE=MODMECA,
# CHAM_MATER=CHMAT,
# EXCIT=(_F(CHARGE=BLOQUAGE,),
# _F(CHARGE=CHARGW,),),);
RESU1=STAT_NON_LINE(reuse =RESU1,
MODELE=MODMECA,
CHAM_MATER=CHMAT,
CARA_ELEM=CAR_ORWL,
EXCIT=(_F(CHARGE=CHARGW,
FONC_MULT=F2,),
_F(CHARGE=BLOQU_GL,),
_F(CHARGE=CHARGT,),),
CONTACT=CONTWL0,
ETAT_INIT=_F(EVOL_NOLI=RESU1,),
INCREMENT=_F(LIST_INST=List2,),
METHODE='NEWTON',
NEWTON=_F(PREDICTION='ELASTIQUE',
MATRICE='TANGENTE',
REAC_ITER=0,),
CONVERGENCE=_F(RESI_GLOB_RELA=1e-05,
ITER_GLOB_MAXI=40,
ARRET='OUI',),
SOLVEUR=_F(METHODE='MULT_FRONT',
NPREC=8,),);
# _F(CHARGE=BLOQU_GL,),),
# CONTACT=CONTWL0,
# ETAT_INIT=_F(EVOL_NOLI=RESU1,
# INST=1,
# NUME_DIDI=1,
# INST_ETAT_INIT=1,),
# ---------------------------------------------------------
# Old Form < 11.17
# ---------------------------------------------------------
#RESU1=CALC_ELEM(reuse =RESU1,
# MODELE=MODMECA,
# CARA_ELEM=CAR_ORWL,
# RESULTAT=RESU1,
# GROUP_MA='E_SPERRE',
# OPTION=('SIEF_ELNO','SIEQ_ELNO',),);
#RESU1=CALC_NO(reuse =RESU1,
# RESULTAT=RESU1,
# OPTION=('SIEF_NOEU','SIEQ_NOEU',),
# MODELE=MODMECA,
# GROUP_MA='E_SPERRE',);
# ----------------------------------------------------------
# New Form CA >= 11.17
# ----------------------------------------------------------
#RESU1=CALC_ELEM(reuse =RESU1,
# MODELE=MODMECA,
# RESULTAT=RESU1,
# GROUP_MA='E_SPERRE',
# OPTION=('SIEF_ELNO','SIEQ_ELNO',),);
RESU1=CALC_CHAMP(reuse =RESU1,
MODELE=MODMECA,
RESULTAT=RESU1,
CONTRAINTE=('SIEF_NOEU','SIEF_ELNO',),
CRITERES='SIEQ_ELNO',);
# CARA_ELEM=CAR_ORWL,
# ===========================================================
# RESULTATS FORMAT GMSH
IMPR_RESU(FORMAT='GMSH',
MODELE=MODMECA,
UNITE=37,
RESU=(_F(MAILLAGE=MAIL,
RESULTAT=RESU1,
NOM_CHAM='DEPL',
NUME_ORDRE=NNN1,
TYPE_CHAM='VECT_3D',
NOM_CMP=('DX','DY','DZ',),),
_F(RESULTAT=RESU1,
NOM_CHAM='SIEF_NOEU',
NUME_ORDRE=NNN1,),
_F(RESULTAT=RESU1,
NOM_CHAM='DEPL',
NUME_ORDRE=NNN2,
TYPE_CHAM='VECT_3D',
NOM_CMP=('DX','DY','DZ',),),
_F(RESULTAT=RESU1,
NOM_CHAM='SIEF_NOEU',
NUME_ORDRE=NNN2,),),);
# RESULTATS FORMAT MED
IMPR_RESU(FORMAT='MED',
UNITE=80,
RESU=(_F(MAILLAGE=MAIL,
RESULTAT=RESU1,
NOM_CHAM='DEPL',),
_F(RESULTAT=RESU1,
NOM_CHAM=('SIEF_ELNO','SIEQ_ELNO',),),),);
# RESULTATS FORMAT CASTEM
#IMPR_RESU(FORMAT='CASTEM',
# MODELE=MODMECA,
# UNITE=81,
# RESU=_F(MAILLAGE=MAIL,
# RESULTAT=RESU1,
# NOM_CHAM=('DEPL','SIEF_ELNO',),
# NUME_ORDRE=(NUM_CAL1,NUM_CALS,),),);
#STANLEY();
========================
CODE-ASTER CODE:
========================
DEBUT(LANG='ENG',);
# PATRON
# ANALYSE STATIQUE
# 3D
# MISE EN DONNEES
MAIL0=LIRE_MAILLAGE(UNITE=20,
FORMAT='ASTER',
INFO=1,);
# --- the normal vectors ar O.K. ---
#MAIL0=MODI_MAILLAGE(reuse =MAIL0,
# MAILLAGE=MAIL0,
# ORIE_NORM_COQUE=_F(GROUP_MA=('F_C_SPER','F_C_FELS',),),
# INFO=2,);
MAIL0=DEFI_GROUP(reuse =MAIL0,
MAILLAGE=MAIL0,
CREA_GROUP_MA=(_F(NOM='F_WSLOAD',
GROUP_MA='F_WS_SPE',),
_F(NOM='TOUT',
UNION=('E_SPERRE','E_FELS',),),
_F(NOM='TOUT_SH',
UNION=('E_SPERRE','E_FELS','F_WSLOAD',),),),
CREA_GROUP_NO=(_F(GROUP_MA='F_C_Fels',
NOM='N_C_FELS',),
_F(GROUP_MA='F_C_Sper',
NOM='N_C_SPER',),
_F(GROUP_MA='E_CON_SW',
NOM='SPRINGS',),
_F(GROUP_MA='E_CON_SW',
NOM='N_CON_SW',),
_F(GROUP_MA='E_CON_FW',
NOM='N_CON_FW',),),);
MAIL=CREA_MAILLAGE(MAILLAGE=MAIL0,
CREA_POI1=_F(NOM_GROUP_MA='SPRINGS',
GROUP_NO='SPRINGS',),
INFO=1,);
MODMECA=AFFE_MODELE(MAILLAGE=MAIL,
AFFE=(_F(GROUP_MA='TOUT',
PHENOMENE='MECANIQUE',
MODELISATION='3D',),
_F(GROUP_MA='F_WSLOAD',
PHENOMENE='MECANIQUE',
MODELISATION='3D',),
_F(GROUP_MA='SPRINGS',
PHENOMENE='MECANIQUE',
MODELISATION='DIS_T',),),);
# with cyl. orthotropic Concrete Moduls
CAR_ORGL=AFFE_CARA_ELEM(MODELE=MODMECA,
DISCRET=_F(CARA='K_T_D_N',
GROUP_MA='SPRINGS',
VALE=(1.0,1.0,1.0,),),
MASSIF=_F(GROUP_MA='E_SPERRE',
ANGL_AXE=(90.0,90.0,),
ORIG_AXE=(0.0,242.981538,186.0,),),);
# MASSIF=_F(GROUP_MA='TOUT',
# ANGL_REP=(0.0,0.0,0.0,),), );
CAR_ORWL=AFFE_CARA_ELEM(MODELE=MODMECA,
DISCRET=_F(CARA='K_T_D_N',
GROUP_MA='SPRINGS',
VALE=(1.0,1.0,1.0,),),);
PLAYZERO=DEFI_CONSTANTE(VALE=0.0,);
# BETON ABAQUS
# Material - orthotrop par. Zylinder
ZylR = 285.96;
ZylX = 0.0;
E_ll = 20000.0;
nu_l = 0.3;
G_l = (E_ll / (2 * (1 + nu_l)));
E_tt = 200.0;
nu_t = 0.003;
G_t = (E_tt / (2 * (1 + nu_l)));
# tanA=(X-ZylX)/ZylR * 10 for diagram
Alpha = FORMULE(VALE='57.3*100*atan((TEMP-ZylX)/(1*ZylR))',
NOM_PARA='TEMP',);
Cos2A = FORMULE(VALE='1.0/(((TEMP-ZylX)/(1*ZylR))**2 + 1)',
NOM_PARA='TEMP',);
Sin2A = FORMULE(VALE='((TEMP-ZylX)/(1*ZylR))**2/(((TEMP-ZylX)/(1*ZylR))**2 + 1)',
NOM_PARA='TEMP',);
Fu_E_ll = FORMULE(VALE='Cos2A(TEMP)*E_ll + Sin2A(TEMP)*E_tt',
NOM_PARA='TEMP',);
Fu_E_tt = FORMULE(VALE='Sin2A(TEMP)*E_ll + Cos2A(TEMP)*E_tt',
NOM_PARA='TEMP',);
# =============
ListA=DEFI_LIST_REEL(DEBUT=-250.0,
INTERVALLE=_F(JUSQU_A=250.0,
NOMBRE=20,),);
fonA=CALC_FONC_INTERP(FONCTION=Alpha,
LIST_PARA=ListA,
PROL_DROITE='CONSTANT',
PROL_GAUCHE='CONSTANT',);
fonB=CALC_FONC_INTERP(FONCTION=Fu_E_ll,
LIST_PARA=ListA,
PROL_DROITE='CONSTANT',
PROL_GAUCHE='CONSTANT',);
fonC=CALC_FONC_INTERP(FONCTION=Fu_E_tt,
LIST_PARA=ListA,
PROL_DROITE='CONSTANT',
PROL_GAUCHE='CONSTANT',);
IMPR_FONCTION(FORMAT='XMGRACE',
UNITE=52,
COURBE=(_F(FONCTION=fonA,
LIST_PARA=ListA,
LEGENDE='Winkel fuer Zylinder',
STYLE=2,
COULEUR=4,
MARQUEUR=5,),
_F(FONCTION=fonB,
LIST_PARA=ListA,
LEGENDE='E_Modul LL',
STYLE=1,
COULEUR=3,
MARQUEUR=3,),
_F(FONCTION=fonC,
LEGENDE='E_Modul TT',
COULEUR=2,
MARQUEUR=2,),),
TITRE='Begleitender Zyliner mit E-Modul Verteilung',
BORNE_Y=(-4500.0,24000.0,),
GRILLE_Y=25.0,
LEGENDE_X='Abstand von Sperrenmitte',
LEGENDE_Y='E-Moduli, Alpha*100',);
# ----------------------------------
#BETONFr=DEFI_MATERIAU(ELAS_ORTH=_F(E_L=20000.0,
# E_T=200.0,
# E_N=20000.0,
# NU_LT=0.003,
# NU_LN=0.3,
# NU_TN=0.003,
# G_LT=76.920,
# G_LN=7692.0,
# G_TN=76.920,
# RHO=0.00250,),);
BETONFr=DEFI_MATERIAU(ELAS_ORTH=_F(E_L=E_ll,
E_T=E_tt,
E_N=E_ll,
NU_LT=nu_t,
NU_LN=nu_l,
NU_TN=nu_t,
G_LT=G_t,
G_LN=G_l,
G_TN=G_t,
RHO=0.0025,),);
BETON=DEFI_MATERIAU(ELAS=_F(E=20000.0,
NU=0.3,
RHO=0.0025,),);
PROPS=DEFI_MATERIAU(ELAS=_F(E=0.21,
NU=0.3,
RHO=1e-06,
ALPHA=0.01,),);
EMod=DEFI_CONSTANTE(VALE=20000.0,);
Rho_bet=DEFI_CONSTANTE(VALE=0.0025,);
NU=DEFI_CONSTANTE(VALE=0.3,);
BET_EC=DEFI_MATERIAU(ELAS_FO=_F(E=EMod,
NU=NU,
RHO=Rho_bet,
B_ENDOGE=1.5e-05,),
BETON_ECRO_LINE=_F(D_SIGM_EPSI=-4000.0,
SYT=12.0,
SYC=30.0,),);
# Erste Testversion
CONTEG=DEFI_CONTACT(MODELE=MODMECA,
INFO=1,
FORMULATION='CONTINUE',
FROTTEMENT='COULOMB',
ALGO_RESO_GEOM='POINT_FIXE',
ITER_GEOM_MAXI=10,
ALGO_RESO_CONT='POINT_FIXE',
ITER_CONT_MAXI=30,
RESI_FROT=0.001,
ZONE=_F(APPARIEMENT='MAIT_ESCL',
GROUP_MA_MAIT='F_C_Fels',
GROUP_MA_ESCL='F_C_Sper',
CONTACT_INIT='OUI',
ALGO_CONT='STANDARD',
COEF_CONT=100.0,
COULOMB=45.0,
SEUIL_INIT=100.0,
ALGO_FROT='STANDARD',),);
# DIST_MAIT=PLAYZERO,
CONTWL0=DEFI_CONTACT(MODELE=MODMECA,
INFO=1,
FORMULATION='CONTINUE',
FROTTEMENT='COULOMB',
ALGO_RESO_GEOM='POINT_FIXE',
REAC_GEOM='CONTROLE',
NB_ITER_GEOM=10,
ALGO_RESO_CONT='POINT_FIXE',
ITER_CONT_MAXI=30,
RESI_FROT=0.001,
ZONE=_F(APPARIEMENT='MAIT_ESCL',
GROUP_MA_MAIT='F_C_Fels',
GROUP_MA_ESCL='F_C_Sper',
CONTACT_INIT='OUI',
ALGO_CONT='STANDARD',
COULOMB=45.0,
SEUIL_INIT=100.0,
ALGO_FROT='STANDARD',),);
# CONTACT_INIT='OUI',
CONTWL=DEFI_CONTACT(MODELE=MODMECA,
INFO=2,
FORMULATION='CONTINUE',
FROTTEMENT='COULOMB',
RESI_GEOM=0.001,
RESI_FROT=0.01,
ZONE=_F(APPARIEMENT='MAIT_ESCL',
GROUP_MA_MAIT='F_C_Fels',
GROUP_MA_ESCL='F_C_Sper',
SANS_GROUP_NO=('N_CON_SW','N_CON_FW',),
CONTACT_INIT='OUI',
ALGO_CONT='STANDARD',
COEF_CONT=100.0,
COULOMB=45.0,
SEUIL_INIT=100.0,
ALGO_FROT='STANDARD',),);
GROUND=DEFI_MATERIAU(ELAS=_F(E=20000.0,
NU=0.3,
RHO=0.0018,),);
CHMATFr=AFFE_MATERIAU(MAILLAGE=MAIL,
AFFE=(_F(GROUP_MA='E_SPERRE',
MATER=BETONFr,),
_F(GROUP_MA='E_FELS',
MATER=GROUND,),
_F(GROUP_MA='SPRINGS',
MATER=PROPS,),),);
CHMAT=AFFE_MATERIAU(MAILLAGE=MAIL,
AFFE=(_F(GROUP_MA='E_SPERRE',
MATER=BETON,),
_F(GROUP_MA='E_FELS',
MATER=GROUND,),),);
# CONDITIONS AUX LIMITES ET CHARGEMENT
#POINT A : ENCASTREMENT
BLOQU_GL=AFFE_CHAR_MECA(MODELE=MODMECA,
DDL_IMPO=_F(GROUP_NO='K_FE_LAG',
LIAISON='ENCASTRE',),);
BLOQU_CE=AFFE_CHAR_MECA(MODELE=MODMECA,
DDL_IMPO=_F(GROUP_NO='K_FE_LAG',
LIAISON='ENCASTRE',),
LIAISON_GROUP=(_F(GROUP_NO_1='N_CON_SW',
GROUP_NO_2='N_CON_FW',
DDL_1='DX',
COEF_MULT_1=1.0,
DDL_2='DX',
COEF_MULT_2=-1.0,
COEF_IMPO=0.0,),
_F(GROUP_NO_1='N_CON_SW',
GROUP_NO_2='N_CON_FW',
DDL_1='DY',
COEF_MULT_1=1.0,
DDL_2='DY',
COEF_MULT_2=-1.0,
COEF_IMPO=0.0,),
_F(GROUP_NO_1='N_CON_SW',
GROUP_NO_2='N_CON_FW',
DDL_1='DZ',
COEF_MULT_1=1.0,
DDL_2='DZ',
COEF_MULT_2=-1.0,
COEF_IMPO=0.0,),),);
BLOQU_TO=AFFE_CHAR_MECA(MODELE=MODMECA,
DDL_IMPO=_F(GROUP_NO='K_FE_LAG',
LIAISON='ENCASTRE',),
LIAISON_GROUP=(_F(GROUP_NO_1='N_C_SPER',
GROUP_NO_2='N_C_FELS',
DDL_1='DX',
COEF_MULT_1=1.0,
DDL_2='DX',
COEF_MULT_2=-1.0,
COEF_IMPO=0.0,),
_F(GROUP_NO_1='N_C_SPER',
GROUP_NO_2='N_C_SPER',
DDL_1='DY',
COEF_MULT_1=1.0,
DDL_2='DY',
COEF_MULT_2=-1.0,
COEF_IMPO=0.0,),
_F(GROUP_NO_1='N_C_SPER',
GROUP_NO_2='N_C_FELS',
DDL_1='DZ',
COEF_MULT_1=1.0,
DDL_2='DZ',
COEF_MULT_2=-1.0,
COEF_IMPO=0.0,),),);
#POINT B : FORCE IMPOSEE
CHARGT=AFFE_CHAR_MECA(MODELE=MODMECA,
PESANTEUR=_F(GROUP_MA='E_SPERRE',
GRAVITE=9.81,
DIRECTION=(0.0,0.0,-1.0,),),);
# FORCE_INTERNE=_F(GROUP_MA='E_SPERRE',
# FZ=-0.024,),
#Z_Hor = 200.0;
Z_Hor = 186.0;
WatFa = 0.01;
#WatFa = 1e-09;
# Herabgesetzte Wasserlast zum Testen des Kontaktes
# WatFa = 1e-08;
f_Wat = FORMULE(VALE='WatFa*(Z_Hor-Z)',
NOM_PARA='Z',);
CHARGW=AFFE_CHAR_MECA_F(MODELE=MODMECA,
PRES_REP=_F(GROUP_MA='F_WSLOAD',
PRES=f_Wat,),);
#
# FONCTION
NUM_CAL1 = 1;
NUM_CAL2 = 1;
NUM_CALS = (NUM_CAL1 + NUM_CAL2);
NNN1 = NUM_CAL1;
NNN2 = NUM_CALS;
List1=DEFI_LIST_REEL(DEBUT=0.0,
INTERVALLE=_F(JUSQU_A=1.0,
NOMBRE=NUM_CAL1,),);
List2=DEFI_LIST_REEL(DEBUT=1.0,
INTERVALLE=_F(JUSQU_A=2.0,
NOMBRE=NUM_CAL2,),);
F1=DEFI_FONCTION(
NOM_PARA='INST',
VALE=(0.0 ,0.0 ,
1.0 ,1.0 ,),);
F2=DEFI_FONCTION(
NOM_PARA='INST',
VALE=(1.0 ,0.0 ,
2.0 ,1.0 ,),);
# ===========================================================
# CALCUL DES 1. STAT (EG)
# ===========================================================
#RESU1=MECA_STATIQUE(MODELE=MODMECA,
# CHAM_MATER=CHMATFr,
# CARA_ELEM=CAR_ORGL,
# EXCIT=(_F(CHARGE=BLOQUAGE,),
# _F(CHARGE=CHARGT,),),);
# for failure exception
#try:
# RESU1=STAT_NON_LINE(....
#except:
# pass
#....
RESU1=STAT_NON_LINE(MODELE=MODMECA,
CHAM_MATER=CHMATFr,
CARA_ELEM=CAR_ORGL,
EXCIT=(_F(CHARGE=CHARGT,
FONC_MULT=F1,),
_F(CHARGE=BLOQU_GL,),),
CONTACT=CONTEG,
INCREMENT=_F(LIST_INST=List1,),
METHODE='NEWTON',
NEWTON=_F(PREDICTION='ELASTIQUE',
MATRICE='TANGENTE',
REAC_ITER=0,),
CONVERGENCE=_F(RESI_GLOB_RELA=1e-05,
ITER_GLOB_MAXI=40,
ARRET='OUI',),
SOLVEUR=_F(METHODE='MULT_FRONT',
NPREC=8,),);
# _F(CHARGE=BLOQU_CE,),),
# CONTACT=CONTWL,
# CARA_ELEM=CAR_ORGL,
# ===========================================================
# CALCUL DES 2. STAT (WL)
# ===========================================================
#RESU2=MECA_STATIQUE(MODELE=MODMECA,
# CHAM_MATER=CHMAT,
# EXCIT=(_F(CHARGE=BLOQUAGE,),
# _F(CHARGE=CHARGW,),),);
RESU1=STAT_NON_LINE(reuse =RESU1,
MODELE=MODMECA,
CHAM_MATER=CHMAT,
CARA_ELEM=CAR_ORWL,
EXCIT=(_F(CHARGE=CHARGW,
FONC_MULT=F2,),
_F(CHARGE=BLOQU_GL,),
_F(CHARGE=CHARGT,),),
CONTACT=CONTWL0,
ETAT_INIT=_F(EVOL_NOLI=RESU1,),
INCREMENT=_F(LIST_INST=List2,),
METHODE='NEWTON',
NEWTON=_F(PREDICTION='ELASTIQUE',
MATRICE='TANGENTE',
REAC_ITER=0,),
CONVERGENCE=_F(RESI_GLOB_RELA=1e-05,
ITER_GLOB_MAXI=40,
ARRET='OUI',),
SOLVEUR=_F(METHODE='MULT_FRONT',
NPREC=8,),);
# _F(CHARGE=BLOQU_GL,),),
# CONTACT=CONTWL0,
# ETAT_INIT=_F(EVOL_NOLI=RESU1,
# INST=1,
# NUME_DIDI=1,
# INST_ETAT_INIT=1,),
# ---------------------------------------------------------
# Old Form < 11.17
# ---------------------------------------------------------
#RESU1=CALC_ELEM(reuse =RESU1,
# MODELE=MODMECA,
# CARA_ELEM=CAR_ORWL,
# RESULTAT=RESU1,
# GROUP_MA='E_SPERRE',
# OPTION=('SIEF_ELNO','SIEQ_ELNO',),);
#RESU1=CALC_NO(reuse =RESU1,
# RESULTAT=RESU1,
# OPTION=('SIEF_NOEU','SIEQ_NOEU',),
# MODELE=MODMECA,
# GROUP_MA='E_SPERRE',);
# ----------------------------------------------------------
# New Form CA >= 11.17
# ----------------------------------------------------------
#RESU1=CALC_ELEM(reuse =RESU1,
# MODELE=MODMECA,
# RESULTAT=RESU1,
# GROUP_MA='E_SPERRE',
# OPTION=('SIEF_ELNO','SIEQ_ELNO',),);
RESU1=CALC_CHAMP(reuse =RESU1,
MODELE=MODMECA,
RESULTAT=RESU1,
CONTRAINTE=('SIEF_NOEU','SIEF_ELNO',),
CRITERES='SIEQ_ELNO',);
# CARA_ELEM=CAR_ORWL,
# ===========================================================
# RESULTATS FORMAT GMSH
IMPR_RESU(FORMAT='GMSH',
MODELE=MODMECA,
UNITE=37,
RESU=(_F(MAILLAGE=MAIL,
RESULTAT=RESU1,
NOM_CHAM='DEPL',
NUME_ORDRE=NNN1,
TYPE_CHAM='VECT_3D',
NOM_CMP=('DX','DY','DZ',),),
_F(RESULTAT=RESU1,
NOM_CHAM='SIEF_NOEU',
NUME_ORDRE=NNN1,),
_F(RESULTAT=RESU1,
NOM_CHAM='DEPL',
NUME_ORDRE=NNN2,
TYPE_CHAM='VECT_3D',
NOM_CMP=('DX','DY','DZ',),),
_F(RESULTAT=RESU1,
NOM_CHAM='SIEF_NOEU',
NUME_ORDRE=NNN2,),),);
# RESULTATS FORMAT MED
IMPR_RESU(FORMAT='MED',
UNITE=80,
RESU=(_F(MAILLAGE=MAIL,
RESULTAT=RESU1,
NOM_CHAM='DEPL',),
_F(RESULTAT=RESU1,
NOM_CHAM=('SIEF_ELNO','SIEQ_ELNO',),),),);
# RESULTATS FORMAT CASTEM
#IMPR_RESU(FORMAT='CASTEM',
# MODELE=MODMECA,
# UNITE=81,
# RESU=_F(MAILLAGE=MAIL,
# RESULTAT=RESU1,
# NOM_CHAM=('DEPL','SIEF_ELNO',),
# NUME_ORDRE=(NUM_CAL1,NUM_CALS,),),);
#STANLEY();
References:
[1] Dr.Ing. Dipl.Ing.
Alexsandro Holzner: Dissertation, Universität der Bundeswehr München.
Integrales
Talsperrenmodell zur
Gesamtbewertung von Gewölbemauerngeometrien.
[2] MAYAVI (WINDOWS8) : 3D scientific data visualisation and plotting in Python