--- /dev/null
+# coding: utf-8 -*-
+#
+# Copyright (C) 2012-2013 EDF
+#
+# This file is part of SALOME HYDRO module.
+#
+# SALOME HYDRO module is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# SALOME HYDRO module is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with SALOME HYDRO module. If not, see <http://www.gnu.org/licenses/>.
+# PNPN changer la place du trait dans les FACT ouverts
+# PNPN ne pas afficher les facts optionnels
+
+import types
+from Accas import *
+import types
+class Tuple:
+ def __init__(self,ntuple):
+ self.ntuple=ntuple
+
+ def __convert__(self,valeur):
+ if type(valeur) == types.StringType: return None
+ if len(valeur) != self.ntuple: return None
+ return valeur
+
+ def info(self):
+ return "Tuple de %s elements" % self.ntuple
+
+liste_Objets_Surface_Elementaire = []
+class Surface_Elementaire (ASSD):
+ def __init__(self, nom):
+ ASSD.__init__(self)
+ self.setName(nom)
+
+dico_Modeles_Numeriques = {
+ 'DPD' : { 'hybride': ('hybride_microscopic', 'hybride_macroscopic SPDP'),
+ 'standalone' : ('DPD'),
+ }
+}
+def description_manuelle_particule_DEM():
+ return FACT(statut ='o', max= "**",
+ Position = SIMP(statut='o', typ='R', max=3, min =3),
+ Vitesse = SIMP(statut='o', typ='R', max=3, min =3),
+ Vitesse_Rotation = SIMP(statut='o', typ='R', max=3, min =3 ),
+ )
+
+def description_manuelle_particule_cinetique():
+ return FACT(statut ='o', max= "**",
+ Position = SIMP(statut='o', typ='R', max=3, min =3),
+ Vitesse = SIMP(statut='o', typ='R', max=3, min =3),
+ )
+
+def description_manuelle_particule_cinetique_etendue():
+ return FACT(statut ='o', max= "**",
+ Position = SIMP(statut='o', typ='R', max=3, min =3),
+ Vitesse = SIMP(statut='o', typ='R', max=3, min =3),
+ #Diffusivite = SIMP(statut='f', typ='R'),
+ #Concentration = SIMP(statut='f', typ='R'),
+)
+
+def bloc_description_particule_fichier ():
+ return BLOC ( condition = 'type_description == "fichier"',
+ format_fichier = SIMP (statut='o', typ = 'TXM', into = ['txt','Autre',] ),
+ )
+
+def champ (nomDelaContante, labels ,nbReels ) :
+# ajouter les extensions pour le fichier et les blocs associes
+# certains champs ne seront jamais uniformes
+ dicoBloc = {}
+ dicoBloc[nomDelaContante] = SIMP (statut='o', typ = 'R')
+ return FACT(statut ='o',
+ Exogene = SIMP(statut = 'o', typ = bool),
+ )
+ #b_exogene = BLOC (condition = "Exogene == True,
+ # type_de_champ_exogene = SIMP ( statut='o', typ = 'TXM', into = ('format', 'interface')),
+ # b_type_de_champ_exogene_format = BLOC( condition = ' type_de_champ_exogene == "format" ',
+ # Format = SIMP (statut='o', typ = 'TXM', into = ['txt','Med','manuel',] ),
+ # td_manuel = BLOC ( condition = 'Format == "manuel"',
+ #Vecteur = SIMP( fenetreIhm='Tableau', homo = labels,
+ # statut='o', min=2, max='**',
+ # typ = Tuple(nbReels),
+ # validators=VerifTypeTuple(("'R',"*nbReels),),) # end Particule
+ # Vecteur= SIMP( typ ='R', statut ='o', max ='**'),
+ # ),
+ # td_txt = BLOC ( condition = 'Format == "txt"',
+ # Fichier = SIMP(statut='o', typ = ('Fichier','Text Files(*.txt);All Files (*)'),),
+ # ),
+ # td_med = BLOC ( condition = 'Format == "txt"',
+ # Fichier = SIMP(statut='o', typ = ('Fichier','Med Files(*.med);All Files (*)'),),
+ # ),
+ # ), # b_type_de_champ_exogene_format
+ # b_type_de_champ_exogene_interface = BLOC( condition = ' type_de_champ_exogene == "interface" ',
+ # Interface = SIMP ( statut='o', typ = 'TXM')
+ # ), # b_type_de_champ_exogene_interface
+ # ),
+ # b_endogene = BLOC (condition = "Exogene == False,
+ # Uniforme = SIMP(statut = 'o', typ = bool),
+ # b_uniforme = BLOC (condition = "Uniforme == True", **dicoBloc),
+ # b_non_uniforme = BLOC (condition = "Uniforme == False",
+ # Categorie = SIMP(statut = 'o', typ = 'TXM', into = ['Valeurs Directes Manuelles', 'Fonction Standard', 'Fichier']),
+
+ # t_calcul = BLOC ( condition = 'Categorie == "Connue"',
+ # type_description = SIMP ( statut='o', typ = 'TXM', into = ['manuel', 'fichier']),
+ # td_fichier = BLOC ( condition = 'type_description == "fichier"',
+ # Format_Fichier = SIMP (statut='o', typ = 'TXM', into = ['txt','Autre',] ),
+ # Fichier = SIMP(statut='o', typ = ('Fichier','Med Files(*.med);All Files (*)'),),
+ # ),
+# PNPN faire le bloc selon la longueur
+ # td_manuel = BLOC ( condition = 'type_description == "manuel"',
+ #Vecteur = SIMP( fenetreIhm='Tableau', homo = labels,
+ # statut='o', min=2, max='**',
+ # typ = Tuple(nbReels),
+ # validators=VerifTypeTuple(("'R',"*nbReels),),) # end Particule
+ # Vecteur= SIMP( typ ='R', statut ='o', max ='**'),
+ # ),
+ # ),
+ # t_externe = BLOC ( condition = 'Categorie == "Externe"',
+ # Code = SIMP(statut = 'o', typ = 'TXM'),
+ # ),
+ # ),
+ #)
+
+
+
+
+def bloc_description_particule_manuelle (fonction_type_de_description) :
+ return BLOC ( condition = 'type_description_particule == "manuelle"',
+ Nombre_D_Especes = SIMP(statut = 'o', typ = 'I', defaut =1,),
+ Consigne = SIMP(statut ="o", homo="information", typ="TXM", defaut = " definir autant d espece que le nombre d especes"),
+ Espece = FACT ( statut='o', max = "**",
+ Particule = apply(fonction_type_de_description),
+ ), # fin fact Espece
+ ) # end b_manuelle
+
+def bloc_description_particule_tableau (nbReels, labels):
+ return BLOC ( condition = 'type_description_particule == "tableau"',
+ Nombre_D_Especes = SIMP(statut = 'o', typ = 'I', defaut =1,),
+ Consigne = SIMP(statut ="o", homo="information", typ="TXM", defaut = " definir autant d espece que le nombre d especes"),
+ Espece = FACT ( statut='o', max = "**",
+ Particules = SIMP( fenetreIhm='Tableau', homo = labels,
+ statut='o', min=2, max='**',
+ typ = Tuple(nbReels),
+ validators=VerifTypeTuple(("'R',"*nbReels),),) # end Particule
+ ), # fin fact Espece
+ ) # end b_tableau
+
+def cree_Surface_Elementaire(MC) :
+ for surface in MC.valeur:
+ new_liste=[]
+ if not(surface in liste_Objets_Surface_Elementaire):
+ new_Surface=Surface_Elementaire(surface)
+ new_liste.append(new_Surface)
+ liste_Objets_Surface_Elementaire.append(surface)
+ print (liste_Objets_Surface_Elementaire)
+ return
+
+#
+
+dict_Composant = { "Usecase Silvia" : ['Particule'],
+ "Ecoulement_diphasique_disperse" : ['Particule', 'Fluide','Solide','Plasma',]
+ }
+JdC = JDC_CATA('Vimmp')
+
+
+Etude = PROC (nom = 'Etude',
+ Titre = SIMP(statut='o', typ = 'TXM'),
+
+ Domaine_Geometrique= FACT( statut='o',
+ Forme = SIMP(statut='o', typ = 'TXM',into = ['Forme Simplifiee', 'CAO ou Maillage']),
+ b_Forme = BLOC( condition = 'Forme == "Forme Simplifiee"',
+ Boite = SIMP(statut='o', typ = 'TXM',into = ['Cube', 'Boule',] ),
+ b_Cube = BLOC( condition = 'Boite == "Cube"',
+ Taille_Boite_Englobante = SIMP(statut='o', typ = 'R', max=3, min =3)
+ # derait etre un Tuple(3) mais a faire apres la projection
+ ), # fin b_Cube
+ b_Boule = BLOC( condition = 'Boite == "Sphere"',
+ Centre = SIMP(statut='o', typ = 'R', max=3, min =3),
+ Rayon = SIMP(statut='o', typ = 'R') ,
+ # derait etre un Tuple(3) mais a faire apres la projection
+ ), # fin b_Sphere
+ ), # fin b_Forme
+ b_CAO = BLOC ( condition="Forme == 'CAO ou Maillage'" ,
+ format_fichier = SIMP (statut='o', typ = 'TXM', into = ['txt','Med','I-deas', 'Gmsh', 'Harpoon', 'Simail', 'Star-CCM'], ),
+ # PNPN -> generer tous les blocs
+ # faire un mot clef pour avoir une projection qui permet le concatenation des into ?
+ b_format_fichier_med = BLOC ( condition="format_fichier == 'Med'",
+ Fichier_Domaine= SIMP(statut='o', typ = ('Fichier','Med Files(*.med);All Files (*)'),),
+ ),
+ ),# fin b_CAO
+ surface_Elementaire=SIMP(statut= 'o',typ= 'TXM',max='**', siValide=cree_Surface_Elementaire),
+ essai=SIMP(statut = 'ee', typ = Surface_Elementaire),
+
+ ), # fin Domaine_Geometrique
+
+
+ Composant_Du_Systeme= FACT( statut='o', max = "**",
+# #EF : Je ne ferais pas apparaître ici l'hybridation via le max=2
+# # J'attendrais de définir la méthode numérique...
+ Composant = SIMP(statut='o', typ = 'TXM',into = ['Particule', 'Fluide','Solide','Plasma'], position = 'global_jdc'),
+ Niveau_De_Description = FACT ( min=1, max= 2, statut='o',
+ Niveau_De_Description_Generale = SIMP( statut ='o', typ = 'TXM',into = ['Microscopique','Mesoscopique', 'Macroscopique']),
+
+ # PNPN voir le global qui ne fonctionne pas
+ b_Mesoscopique_Particule = BLOC( condition = "Niveau_De_Description_Generale == 'Mesoscopique' ",
+ #b_Mesoscopique_Particule = BLOC( condition = "Niveau_De_Description_Generale == 'Mesoscopique' and 'Composant' == 'Particule'",
+ Description_Physique = FACT( statut = 'o',
+ Electrostatics = SIMP( statut='o', typ=bool, defaut=False, position ='global'),
+ Nombre_D_Especes = SIMP( statut = 'o', typ = 'I', defaut =1, position ='global_jdc'),
+ Espece = FACT( statut='o', max = "**",
+ Nom_De_L_Espece = SIMP( statut='o', typ = 'TXM'),
+ Masse_Molaire = SIMP( statut='o', typ='R',),
+ Proportion_En_Nbre_Ou_Masse = SIMP(statut='f', typ='R',),
+ b_Electrostatique = BLOC( condition = "Electrostatics == True",
+ Charge = SIMP( statut = 'o', typ = 'R'),
+ ), # fin b_electorsatique
+ ), # fin Espece
+ Categorie_Interaction = SIMP(statut ='o', typ ='TXM', into=['champ moyen', 'champ moyen dynamique','interaction par paire']),
+ b_Interactionparpaire = BLOC( condition = 'Categorie_Interaction == "interaction par paire"',
+ Interaction_Par_Paire = FACT( statut='o', # max = cardinalite du into
+ Type_Interaction = SIMP( statut='o', typ ='TXM', into = ['electrostatique',], defaut = 'electrostatique'),
+ b_elec = BLOC( condition = "Type_Interaction == 'electrostatique'",
+ Couple_D_especes = FACT (statut ='o', min=1, max = '**', # min=n, max=n(n+1)/2
+ Nom_Des_Especes = SIMP ( statut ='o', typ = 'TXM', min=2, max=2),
+ ),
+ ), # fin b_elec
+ ), # fin Interactions_Par_Paire
+ ), # fin b_Interactionparpaire
+ b_champ_moyen = BLOC( condition = 'Categorie_Interaction == "champ moyen"',
+ Interaction = FACT( statut='o', max = 2, # max = cardinalite du into
+ Type_Interaction = SIMP( statut='o', typ ='TXM', into = ['champ gravite','champ electrostatique']),
+ b_gravite = BLOC (condition = 'Type_Interaction=="champ gravite"',
+ G= SIMP( statut='o', typ='R',defaut =9.81),
+ ),
+ b_elect = BLOC (condition = 'Type_Interaction=="champ electrostatique"',
+ Champ_Elec = champ ('E', ('E',), 1),
+ ),
+ Porte_Sur_Toutes_Les_especes = SIMP ( statut ='o', typ = bool, defaut = True), # faire un typ = "espece"
+ b_porte_espece = BLOC( condition = 'Porte_Sur_Toutes_Les_especes == False ',
+ Liste_D_Espece = SIMP ( statut ='o', typ = 'TXM', max= '**'), # faire un typ = "espece"
+ ),
+ ), # fin Interaction
+ ), # fin b_champ_moyen
+ b_champ_moyen_dynamique = BLOC( condition = 'Categorie_Interaction == "champ moyen dynamique"',
+ Interaction = FACT( statut='o', max = 2, # max = cardinalite du into
+ Type_Interaction = SIMP( statut='o', typ ='TXM', into = ['champ gravite','champ electrostatique']),
+ Liste_D_Espece = SIMP ( statut ='o', typ = 'TXM', max= '**'), # faire un typ = "espece"
+ ), # fin Interaction
+ ), # fin b_champ_moyen_dynamique
+
+
+ ), # fin definition_Physique
+
+ Physique_Statistique = SIMP( statut='o', typ='TXM', defaut='Non_Equilibre', into = ['Equilibre', 'Non_Equilibre']),
+ #Physique_Statistique =SIMP( statut='o', typ='TXM', defaut='Non_Equilibre', into = ['Equilibre', 'Non_Equilibre'], position ='global'),
+ #PN pourquoi global ??
+ b_Physique_Statistique_Equilibre = BLOC( condition = "Physique_Statistique == 'Equilibre'",
+ Distribution = SIMP(statut='o', typ='TXM', defaut='nvt', into=['nvt','nve']),
+ b_Nvt = BLOC ( condition = "Distribution == 'nvt'",
+ Target_Temperature = SIMP( statut='o', typ='R')
+ ), # fin b_nvt
+ b_nve = BLOC ( condition = "Distribution == 'nve'",
+ Target_Energie = SIMP( statut='o', typ='R')
+ ), # fin b_nve
+ ), # b_Physique_statstique_equilibre
+ b_Physique_Statistique_Equilibre_false = BLOC( condition = "Physique_Statistique == 'Non_Equilibre'",
+ Temperature = SIMP( statut='o', typ='R')
+ ), # b_Physique_statstique_equilibre
+ ), # fin b_Mesoscopique_Particule
+
+ Type_De_Description = FACT( min=1, max =2, statut='o',
+ Type_Description = SIMP( statut ='o', typ = 'TXM',into = ['Description_par_Particule', 'Description_par_Champ'], ),
+ b_Particule = BLOC( condition = 'Type_Description == "Description_par_Particule"',
+ Modele_De_Particule = FACT ( statut='o', max ='**',
+ Type_D_Entite = SIMP(statut='o', typ = 'TXM',into =['Coarse', 'Atom','CVE'], defaut='Coarse'),
+ Type_D_Approche = SIMP(statut='o', typ = 'TXM',into =['Cinetique', 'Cinetique_Etendue', 'Position']),
+ ), # Modele_De_Particule
+ Modele_Numerique = FACT ( statut='o',
+ Modele_Numerique = SIMP (statut = 'o', typ = 'TXM', into = ['MD', 'DPD'], defaut ='DPD'),
+ b_DPD = BLOC(condition = 'Modele_Numerique == "DPD"' ,
+ Structure_Loi_evolution = SIMP (statut = 'o', typ = 'TXM', into = ['Equations de Langevin']),
+ # a faire en fonction et projection des types fonctions en XSD a reflechir
+ Species_Pair_Parameters = FACT(statut='o', max="**",
+ #Consigne = SIMP(statut ="o", homo="information", typ="TXM", defaut = "renvoie a InterActions_interparticulaires "),
+ Pair_Interaction = SIMP(statut ='o', max=2, typ = 'TXM'),
+ # lennard_jones si MD et groot_warren DPD
+ Species_Pair_Parameters_Potential_Type = SIMP( statut='o', typ='TXM',into=['groot_warren','lennard_jones']),
+ b_Parameters_Potential_Type_Groot_Warren = BLOC( condition= "species_pair_parameters_potential_type == 'groot_warren'",
+ Groot_Warren_Repulsion = SIMP( statut='o',typ='R',defaut=25.0,val_min=0),
+ Groot_Warren_Cutoff = SIMP( statut='o',typ='R',defaut=1.0,val_min=0),
+ ), # b_parameters_potential_type_groot_warren
+ Drag_Coefficient = SIMP( statut='o', typ='R'),
+ Drag_Force_Cutoff = SIMP( statut='o', typ='R', val_min=0, ),
+ ), # species_pair_parameters
+
+ ), # b_DPD
+ ), # Modele_Numerique
+ ), # b_Particule
+
+ ), # Type_De_Description
+ ), # Niveau_De_Description
+
+## Temps_Physique_Simule
+ ), # Composant du systeme
+
+ Conditions_Aux_Limites = FACT ( statut ='o',max = '**', # max = nb de facette de bord
+ Type_Conditions_Limites = SIMP( statut='o', typ= 'TXM', into =['Entree', 'Sortie', 'Symetrie','Periodique', 'Paroi'], position ='global'),
+ Porte_Sur_Tout_le_Vecteur = SIMP(statut='o', typ = bool),
+ Facette_Bord= SIMP( statut='o', typ= 'TXM',),
+ b_periodique = BLOC( condition = "Type_Conditions_Limites == 'Periodique'",
+ Direction = SIMP(statut='o', typ = 'TXM', into = ['X','Y','Z', 'all']),
+ ), # b_periodique
+ b_Variable = BLOC( condition = "Porte_Sur_Tout_le_Vecteur == False ",
+ Variable_Du_Vecteur_Etat = SIMP(statut='o', typ = 'TXM'),
+ ), # b_Variable
+ ), # Conditions_Aux_Limites
+ Conditions_Initiales = FACT ( statut ='o', # 1 par valeur du vecteur d etat
+ Porte_Sur_Tout_le_Vecteur = SIMP(statut='o', typ = bool),
+ b_Variable = BLOC( condition = "Porte_Sur_Tout_le_Vecteur == False ",
+ Condition_Initiale_Par_Variable = FACT ( max = "**", statut ='o',
+ Variable_Du_Vecteur_Etat = SIMP(statut='o', typ = 'TXM'),
+ Type_Conditions_Initiales = SIMP( statut='o', typ= 'TXM', into =['Distribution Initiale Vecteur Etat', 'Valeurs Vecteur Etat Initiales'], position ='global'),
+ b_distrib = BLOC( condition = "Type_Conditions_Initiales == 'Distribution Initiale Vecteur Etat'",
+ Distribution_Initiale_Vecteur_Etat = SIMP( statut='o',typ ='TXM', into = ['MaxWell', 'Uniforme', 'Auto']),
+ Sous_Domaine_D_Injection = SIMP( statut='f', typ= 'TXM'),
+ ),# b_distrib
+ b_initials = BLOC( condition = "Type_Conditions_Initiales == 'Valeurs Vecteur Etat Initiales'",
+ Fichier_Vecteur_Etat_Initial= SIMP(statut='o', typ = ('Fichier','All Files (*)'),),
+ Format_Fichier_Vecteur_Etat_Initial = SIMP (statut='o', typ = 'TXM', into = ['txt', 'a definir avec Eric']),
+ ),# b_initials
+ ),# Condition_Initiale_Par_Variable
+ ), # b_Variable
+ b_Globale = BLOC( condition = "Porte_Sur_Tout_le_Vecteur == True ",
+ Condition_Initiale = FACT ( statut ='o',
+ Type_Conditions_Initiales = SIMP( statut='o', typ= 'TXM', into =['Distribution Initiale Vecteur Etat', 'Valeurs Vecteur Etat Initiales'], position ='global'),
+ b_distrib = BLOC( condition = "Type_Conditions_Initiales == 'Distribution Initiale Vecteur Etat'",
+ Distribution_Initiale_Vecteur_Etat = SIMP( statut='o',typ ='TXM', into = ['MaxWell', 'Uniforme', 'Auto']),
+ Sous_Domaine_D_Injection = SIMP( statut='f', typ= 'TXM'),
+ ),# b_distrib
+ b_initials = BLOC( condition = "Type_Conditions_Initiales == 'Valeurs Vecteur Etat Initiales'",
+ Fichier_Vecteur_Etat_Initial= SIMP(statut='o', typ = ('Fichier','All Files (*)'),),
+ Format_Fichier_Vecteur_Etat_Initial = SIMP (statut='o', typ = 'TXM', into = ['txt', 'a definir avec Eric']),
+ ),# b_initials
+ ),# Condition_Initiale_Par_Variable
+ ), # b_Globale
+ ), # Conditions_Initiales
+
+) # Etude
+
+# # Systeme physique : met en oeuvre 1 ou plusieurs des 4 entites ELectron
+# # Atome Coarse CVE (en check) but de l etude
+# # plasma, solid, fluid , particule
+# # met en oeuvre des composants principaux puis a quel niveau
+# # sous systeme physique elementaire pour composant principal
+# #
+# Niveau_De_Description = SIMP(statut='o', max= '**',typ ='TXM', into = ['Microscopic','Mesoscopic', 'Macroscopic',], homo= 'SansOrdreNiDoublon',position='global') ,
+# Type_De_Description = SIMP( statut='o', max= '**',homo ='SansOrdreNiDoublon',typ ='TXM', into = ['Modele Particulaire','Particulaire Stochastique','Automate sur reseau','Lagrangien Stochastique'],position='global') ,
+# Modele_numeric = SIMP( statut='o', max= '**',homo ='SansOrdreNiDoublon',typ ='TXM', into = ['MD','DPD', 'DEM', 'CFD','LBM'],position='global') ,
+# # selon les types de description on aura un modele de description de particules =
+# # vecteur d etat ( approche cinetique et approche cinetique etendue ( electromagnetisme ou charge ...)) (independant du nb d espece)
+# # on peut avoir des vecteurs d etat differents pour chacune des especes mais un vecteur d etat seulement par espece (differentes especes )
+# #
+# #
+# # en ddp la loi de comportement est donnée
+# # DPD - > approche cinetique
+# # on choisit la structure de loi d evolution = langevin
+# # expression de la force conservative = loi de comportement (p33) _ MR (0 ou n)
+# # pour la m loi d evolution avec parametres fixes standalone
+# # pour la m loi d evolution avec parametres sont donnes par 1 ou +sieurs calculs (surtout en CFD pour +sieurs calcul pour chaque niveau) (hybride)
+# # on pourrait ne pas avoir de loi de comportement mais des parametres de la loi d evolution
+# # fermeture des contraintes : q faire sur une quantite numerique
+# # il y a des familles de structure de loi d evolution en fonction du couple ( modele de description et du modele numerique )
+# # DPD : 1 structure de loi d evolution : 3 termes
+# # 1 et 1 seule structure de loi d evolution par modele numerique (inverse pas vrai : si langevin par forcement DPD)
+# #Entite = SIMP(statut='o', max= '**',homo ='SansOrdreNiDoublon',typ ='TXM', into = ['element','atomic', 'grain', 'CVE (cont volume)'],position='global'),
+# #method_numeric = SIMP(statut='o', typ ='TXM', into = ['DPD ', 'SDPD']),
+# type_de_methode= SIMP(statut='o', typ ='TXM', into = ['stand_alone', 'hybride'])
+# # MD = molecular dynamics (= microscopic)
+# # CFD = computational fluid dynamics (= macroscopic)
+# # DPD = Dissipative Particule dynamics (= meso)
+# # DEM = Discrete Element Method
+# # ----------------------------------------------
+# #b_DEM = BLOC (condition = 'Type_Etude == "DEM"',
+# # ----------------------------------------------
+# # type_description_particule = SIMP(statut = 'o', typ ='TXM', into =['fichier', 'tableau', 'manuelle'],position = 'global'),
+# # b_fichier = bloc_description_particule_fichier(),
+# # b_tableau = bloc_description_particule_tableau (9, ('Ux','Uy', 'Uz,', 'Vx','Vy', 'Vz','Rx','Ry','Rz')),
+# # b_manuelle = bloc_description_particule_manuelle(description_manuelle_particule_DEM),
+# # ), # fin b_DEM
+#
+# # ------------------------------------------------
+## b_CFD = BLOC (condition = 'Type_Etude == "CFD"',
+## # -----------------------------------------------
+## Ecoulement = SIMP(statut='o', typ ='TXM', into = ['Laminaire','Turbulent']),
+## FLuid = FACT( statut = 'o',
+## Masse_Volumique = SIMP(statut='o', typ='R', ),
+## Viscosite_cinetique = SIMP(statut='o', typ='R', ),
+## Diffusivite_thermique = SIMP(statut='f', typ='R', ),
+## Diffusivite_des_especes = SIMP(statut='f', typ='R', max = '**'),
+## ),
+##
+## #Particule = FACT( statut = 'o', max="**",
+## # Description_Cinetique = Description_manuelle_Particule_Cinetique_etendue(),
+## # ),
+## # type_description_particule = SIMP(statut = 'o', typ ='TXM', into =['fichier', 'tableau', 'manuelle'],position = 'global'),
+## # b_fichier = bloc_description_particule_fichier(),
+## #b_tableau = bloc_description_particule_tableau (9, ('Ux','Uy', 'Uz,', 'Vx','Vy', 'Vz','Rx','Ry','Rz')),
+## ), # fin b_CFD
+##
+## b_MD = BLOC (condition = 'Type_Etude == "MD"',
+## type_description_particule = SIMP(statut = 'o', typ ='TXM', into =['fichier', 'tableau', 'manuelle'],position = 'global'),
+## b_fichier = bloc_description_particule_fichier(),
+## b_tableau = bloc_description_particule_tableau (6, ('Ux','Uy', 'Uz,', 'Vx','Vy', 'Vz')),
+## b_manuelle = bloc_description_particule_manuelle(description_manuelle_particule_cinetique),
+##
+## Materiel_Relation = FACT( statut ='f',
+## Entree_Possible= SIMP(statut='o', typ ='TXM', into = ['calcul', 'fichier']),
+## b_fichier = BLOC (condition = "Entree_Possible == 'fichier'",
+## fichier_MR= SIMP(statut='o', typ= ('Fichier','All Files (*)')),
+## ),
+## ),
+## ), # fin b_MD
+## # ---------------------------------------------
+## b_DPD = BLOC (condition = 'Type_Etude == "DPD"',
+## # ---------------------------------------------
+## type_description_particule = SIMP(statut = 'o', typ ='TXM', into =['fichier', 'tableau', 'manuelle'],position = 'global'),
+## b_fichier = bloc_description_particule_fichier(),
+## b_tableau = bloc_description_particule_tableau (6, ('Ux','Uy', 'Uz,', 'Vx','Vy', 'Vz')),
+## b_manuelle = bloc_description_particule_manuelle(description_manuelle_particule_cinetique),
+## Thermostat = SIMP(statut='o', typ='R', ),
+## ),
+##)
+### ),
+### ),
+#)
+### #Fluid = SIMP(statut='o', typ ='TXM', into ='Laminaire', 'Trubulent'])
+### # Temperature = SIMP(statut='f', typ='R', ),
+### # Concentration = SIMP(statut='f', typ='R'),
+### # Diffusivite = SIMP(statut='f', typ='R'),
+### # Frottement = SIMP(statut='f', typ='R'),
+### # Concentration = SIMP(statut='f', typ='R'),
+### #),
+###
+###