From 6529c38be71787a7d3d1b879330a050da8cb54b8 Mon Sep 17 00:00:00 2001 From: Eric F Date: Wed, 24 Feb 2021 21:46:36 +0100 Subject: [PATCH] ajout de la version 12 du cata_CSAndCPS + .comm, + version 16 .comm --- Vimmp/cata_CSAndCPS_v12.py | 1291 ++++++++++++++++++++ Vimmp/cata_CSAndCPS_v12_test_driver_1.comm | 186 +++ Vimmp/cata_CSAndCPS_v16_test_driver_1.comm | 286 +++++ 3 files changed, 1763 insertions(+) create mode 100644 Vimmp/cata_CSAndCPS_v12.py create mode 100644 Vimmp/cata_CSAndCPS_v12_test_driver_1.comm create mode 100644 Vimmp/cata_CSAndCPS_v16_test_driver_1.comm diff --git a/Vimmp/cata_CSAndCPS_v12.py b/Vimmp/cata_CSAndCPS_v12.py new file mode 100644 index 00000000..815bf384 --- /dev/null +++ b/Vimmp/cata_CSAndCPS_v12.py @@ -0,0 +1,1291 @@ +from Accas import * + +class composant(ASSD):pass +class mapper(ASSD):pass +class converter(mapper):pass +class interpolator(mapper):pass +class modeleNumDuCompo(UserASSD):pass +class especeChimique(UserASSD):pass +class userParticle(UserASSD) :pass +class userAtom(userParticle) :pass +class userMolecule(userParticle) :pass +class userDiscrete(userParticle) :pass +class userDPD(userParticle) :pass + +class spatialRegion(UserASSD):pass +class cadShape(spatialRegion):pass +#class meshGroup(spatialRegion,UserASSDMultiple):pass +class meshGroup(UserASSDMultiple):pass +class meshIdentifier(spatialRegion):pass +class systemGeometry(UserASSD):pass +class simulatedTime(UserASSD):pass +class constitutiveRelation(UserASSD):pass +class interaction(UserASSD):pass +class transferId(UserASSD):pass +class fileId(transferId):pass +class memoryId(transferId):pass +class corbaId(transferId):pass + +class stateVariable(UserASSDMultiple) : pass +class scalar(stateVariable):pass +class dynamicVariable(stateVariable):pass + + +# PN a faire --> ajouter un MC modeleNumerique (apres avoir renomme le modeleNumerique actuel en classe de modele numerique) +# et le dictionnaire d apres +# dictTypModNumModNum = { +# ('Continuum system','Particles') : ('SPH','Lagrangian one-fluid-particle pdf'), +# ('Continuum system','Fields') : ('FV','FEM', 'Spectral method'), +# ('Classical particle system','Particles') : ('MD', 'DPD', 'SDPD','SPH','CFD_Discrete_Particles'), +# ('Classical particle system','Fields') : ('LBM',), +# ('Quantum system','Particles') : ('Particle method',), +# ('Quantum system','Fields') : ('Wave',), +# } + +dictTypModNumModNum = { + ('Continuum system','N-Particle_Method') : ('SPH' , 'Lagrangian one-fluid-particle pdf'), #TODO 'N-Particle_Method --> N-Particle_Method + ('Continuum system','Field-based') : ('FV' , 'FEM', 'Spectral method'), + ('Classical particle system','N-Particle_Method') : ('MD' , 'DPD', 'SDPD','SPH','CFD_Discrete_N-Particle_Method'), + ('Classical particle system','Field-based') : ('LBM' ,), + ('Quantum system','N-Particle_Method') : ('Particle method',), + ('Quantum system','Field-based') : ('Wave',), +} + +dictCodeModeleNumerique = { + 'Code_Saturne' : ('Lagrangian one-fluid-particle pdf', 'FV', 'CFD_Discrete_N-Particle_Method',), + 'Fluent' : ('FV',), + 'Culgi Package': (), + 'DEM_SD' : ('Lagrangian one-fluid-particle pdf', 'FV', 'CFD_Discrete_N-Particle_Method',), + 'DFTB+' : ('density functional tight binding method',), + 'DL_MESO_DPD' : ('Lagrangian one-fluid-particle pdf', 'FV', 'CFD_Discrete_N-Particle_Method',), + 'DL_MESO_LBE' : ('Lagrangian one-fluid-particle pdf', 'FV', 'CFD_Discrete_N-Particle_Method',), + 'DL_POLY_4' : ('Lagrangian one-fluid-particle pdf', 'FV', 'CFD_Discrete_N-Particle_Method',), + 'GROMACS' : ('Lagrangian one-fluid-particle pdf', 'FV', 'CFD_Discrete_N-Particle_Method',), + 'GROMACS_LS' : ('Lagrangian one-fluid-particle pdf', 'FV', 'CFD_Discrete_N-Particle_Method',), + 'LAMMPS' : ('Lagrangian one-fluid-particle pdf', 'FV', 'CFD_Discrete_N-Particle_Method',), + 'NWChem' : ('Lagrangian one-fluid-particle pdf', 'FV', 'CFD_Discrete_N-Particle_Method',), + 'OpenFOAM' : ('Lagrangian one-fluid-particle pdf', 'FV', 'CFD_Discrete_N-Particle_Method',), + 'Quantum EXPRESSO' : ('Particle method', 'Wave',), + 'RHEO_AGGRATE' : ('Particle method', 'Wave',), + 'RHEO_DROP' : ('Particle method', 'Wave',), + 'STAR_CCM+' : ('FV', 'Particles',), + 'Code Nill' : ('Spectral method', ), +} +# Le Code Nill est ajouté en dur au Solver + +dictCodeFormat = { + 'Code_Saturne' : ('Med', 'cgns', 'msh', 'des', 'unv', ), + 'Culgi Package': ('cof',), + 'DEM_SD' : ('geo', 'ascii'), + 'DFTB+' : ('geo', 'ascii'), + 'Fluent' : ('FluentFormat', ), + 'OpenFOAM' : ('OpenFoamFormat', 'Med', ), +} + +dictInterpolatorFormat = { + 'Med Coupling' : ('Med',), +} +dictConvertorFormat = { + 'Gmsh' : ('Med', 'OpenFoamFormat'), +} + +dictTermeLE = { + ('Fields','Particles') : ('Fluid_Velocity_Field', + 'Fluid_Temperature_Field', + 'Fluid_Species_Mass_Fraction_Fluid',), + ('Particles','Fields') : ('Fluid_Particle_Momentum_Exchange_Field', + 'Fluid_Particle_Thermal_Exchange_Field', + 'Lagrangian one-particle pdfFluid_Particle_Mass_Source_Field', + 'Particle_Volumetric_Concentration_Modified_Fluid_Viscosity', + 'Particle_Extra_Stress_Tensor'), + ('Particles','Particles') : ('Pas encore fait'), + ('Fields','Fields') : ('Pas encore fait'), +} + +dictCodeConvertisseur = { + ('Saturne', 'OpenFOAM') : ('gmsh', 'Saturne2CDM and CDM2OpenFoam'), + ('Saturne', 'Fluent') : ('Saturne2CDM and CDM2Fluent'), + ('Fluent', 'OpenFOAM') : ('Fluent2CDM and CDM2OpenFoam'), +} + +listeFormatGenerique =['Med', 'Cgns', 'Gmsh', ] + +#---------------------------------------- +def prepareBlocSystemType(systemType) : +#---------------------------------------- + condition = "SystemType == '" + systemType + "'" + Identifier = SIMP(statut='o', typ=(modeleNumDuCompo,'createObject'),) + SimulatedTimeLapse = SIMP(statut ='o', typ = simulatedTime) + # ModelType = SIMP(statut='o', typ='TXM', into = ('Particles', 'Fields'), position='inGetAttribut') + ChoiceOfApproach = SIMP(statut='o', typ='TXM', into=['Field-based', 'N-Particle_Method'], position='inGetAttribut') + + dicoArgs={} + + for typeMod in ('Field-based', 'N-Particle_Method'): + conditionType = "ChoiceOfApproach == '" + typeMod + "'" + NumericalMethod = SIMP(statut='o',typ='TXM', into=dictTypModNumModNum[systemType, typeMod], + position='global', intoXML=allValueInDict(dictTypModNumModNum)) + dicoBloc = {} + for modeleNumerique in list(dictTypModNumModNum[systemType,typeMod]): + conditionNum = "NumericalMethod == '" + modeleNumerique + "'" + setCode = set() + for code in dictCodeModeleNumerique.keys(): + if modeleNumerique in dictCodeModeleNumerique[code]: setCode.add(code) + # print('------------- conditionType -------->',conditionType) + if setCode ==set(): setCode.add('Code Nill') + Solver = SIMP(statut='o', typ='TXM', into=list(setCode), intoXML=list(dictCodeModeleNumerique.keys()) ) + monNomBloc = 'bloc_ModelName_' + modeleNumerique.replace(' ','_') #les noms de blocs ne peuvent pas avoir de blanc ! + if setCode !=set(): dicoBloc[monNomBloc]=BLOC(condition=conditionNum, nomXML='b_ModelName',Solver=Solver) + dicoArgs['blocModelType'+typeMod] = BLOC(condition=conditionType, NumericalMethod=NumericalMethod, **dicoBloc) + + blocMeshRef = BLOC(condition = '( (ChoiceOfApproach == "Field-based") and (NumericalMethod == "FV") ) or ' + '( (ChoiceOfApproach == "N-Particle_Method") and (NumericalMethod == "CFD_Discrete_N-Particle_Method") )', + MeshIdentifiers = SIMP(statut ='o', max ='**', typ = meshIdentifier, + metAJour=(('ApplyOnGroups', + 'self.etape.getChild("BoundaryConditions").getChild("BoundaryCondition")'),), + ),) + dicoArgs['blocMeshRef'] = blocMeshRef + NumericalModel = FACT(statut='o', max= '**', Identifier=Identifier, ChoiceOfApproach=ChoiceOfApproach, + SimulatedTimeLapse=SimulatedTimeLapse, **dicoArgs) + return BLOC(condition=condition, nomXML='b_systemType', NumericalModel=NumericalModel) + + +#----------------------------------- +def calculCommun(key1, key2, dico): +#----------------------------------- +# retourne la liste des valeurs communes a dico[key1] et dico[key2] + monSet=set() + if not key1 in dico: return () + if not key2 in dico: return () + for val in dico[key1]: + if val in dico[key2]: + monSet.add(val) + if monSet == set() : monSet.add ('No common format') + return list(monSet) + +#------------------------- +def allValueInDict(dico): +#------------------------- +# retourne la liste de toutes les valeurs possibles dans dico + monSet=set() + for clef in dico : + for val in dico[clef] : monSet.add(val) + return monSet + +#-------------------------------------------------------------------------------------------------- +def creeBlocPourLesFichiers(laCondition, Prefixe='Empty', ListeFormats=[], FieldName=None): +#--------------------------------------------------------------------------------------------------- +# il faut reflechir pour parametrer NomDuFichier +# et le type (existing... du fichier) +# et utiliser le creeBlocPourLesFichiers + SIMPFormatFichier = SIMP(statut='o', typ = 'TXM', into = tuple(ListeFormats) + ('All',), defaut='All' ) + dicoDesBlocs = {} + NomDuFichier = Prefixe+'FileName' + formatName = Prefixe+'FileFormat' + dicoDesBlocs[formatName] = SIMPFormatFichier + ListeFormatsboucle = tuple(ListeFormats) + ('All',) + for formatFich in ListeFormatsboucle : + dicoArgs={} + nomBloc = 'blocFormatFichier' + str(formatFich) + typeDesFichiers = ('Fichier', formatFich + " Files (*." + formatFich + ");;All Files (*)",'Sauvegarde') + blocCondition = formatName + " == '" + formatFich + "'" + dicoArgs[NomDuFichier] = SIMP(statut='o', typ = typeDesFichiers, nomXML=NomDuFichier ) + dicoDesBlocs[nomBloc] = BLOC(condition = blocCondition, **dicoArgs) + if FieldName: + SIMPFieldName = SIMP(statut='o', typ = 'TXM',) + dicoDesBlocs[FieldName] = SIMPFieldName + return BLOC(condition=laCondition, **dicoDesBlocs) + +#--------------------------------------------- +def prepareChamp(nomDelaContante, labels ,nbReels ) : +#--------------------------------------------- +# PN : a reecrire +# ajouter les extensions pour le fichier et les blocs associes +# certains champs ne seront jamais uniformes +# probablement a refaire +#PNPN : Passer le nom du champ pour le label du vecteur +# A revoir + + dicoBloc = {} + dicoBloc[nomDelaContante] = SIMP(statut='o', typ='R') + return FACT(statut='o', + InputMode = SIMP(statut='o', typ='TXM', into=('uniform value','values directly assigned','values read in file','analytical function',)), + blocUniforme = BLOC(condition = "InputMode == 'uniform value'", **dicoBloc), + blocVsaisies = BLOC(condition = "InputMode == 'values directly assigned'", + Field = SIMP(typ='R', statut='o', max ='**'), + #Vecteur = SIMP(fenetreIhm='Tableau', homo = labels, + # statut='o', min=2, max='**', + # typ=Tuple(nbReels), + # validators=VerifTypeTuple(("'R',"*nbReels),),) # end particle + ), #b_vsaisie + blocVdsfich = BLOC(condition = "InputMode == 'values read in file'", + Format = SIMP(statut='o', typ='TXM', into=['txt','Med',], position='global' ), + td_txt = BLOC(condition = 'Format == "txt"', + File = SIMP(statut='o', typ=('Fichier','Text Files(*.txt);All Files (*)'),), + ), # fin vtd_txt + td_med_1 = BLOC(condition = 'Format == "Med"', + File = SIMP(statut='o', typ=('Fichier','Med Files(*.med);All Files (*)'),), + ), + td_med_2 = BLOC(condition = 'Format == "Med"', + FieldName = SIMP(statut='o', typ='TXM',), + ), + ), + blocFunct = BLOC(condition = "InputMode == 'analytical function'", + Function = SIMP(statut='o', typ='TXM',), + ), + #b_vserc = BLOC(condition = "InputMode == 'call to a service'", + # Service = SIMP(statut='o', typ='TXM',), + #), + ) + + +#------------------------------ +def prepareTermeSource(condition): +#------------------------------ + return BLOC (condition=condition, + OriginOfSourceTerm = SIMP(statut='o', typ='TXM',into=['Interaction', 'Chemical Reaction', 'Other Scalar']), + blocOriginOfSourceTermInteraction = BLOC(condition = 'OriginOfSourceTerm == "Interaction"', + SourceTermInteraction = SIMP(typ=interaction,statut='o'), + Consigne = SIMP(statut="o", homo="information", typ="TXM", defaut='Create and choose suitable interaction'), + ), + blocOriginOfSourceTermOtherScalar = BLOC(condition = 'OriginOfSourceTerm == "Other Scalar"', + ApplyOnScalar = SIMP (statut ='o', typ=scalar, ), #PNPN A FAIRE : fenetreIhm='menuDeroulant' + ), + ) + +#------------------------------ +def prepareTermeSourceDynVar(condition): +#------------------------------ + return BLOC (condition=condition, + OriginOfSourceTerm = SIMP(statut='o', typ='TXM',into=['Interaction', 'Other Scalar']), + ) + +#------------------------------------------------------ +def prepareFactTurbulence(statut, ajout=None , position=None, positionChoice=None): +#------------------------------------------------------ + listInto = ['Fully resolved (DNS)', 'Spatial filtering (LES)', 'One-point moment', 'One-point PDF'] + if ajout != None : listInto.append(ajout) + return FACT(statut=statut, + TurbulenceModellingType = SIMP(typ='TXM', statut='o', into =listInto, position=position ), + +# --------------- One-point moment ------------------ + blocOnePoint = BLOC(condition= "TurbulenceModellingType == 'One-point moment'", + RANSModel = SIMP(statut="o", typ="TXM", position='global', + into=['Turbulent-Viscosity Model (TVM)', 'Reynolds Stress Model (RSM)']), + blocTVM = BLOC(condition= "RANSModel == 'Turbulent-Viscosity Model (TVM)'", + TVMChoice = SIMP(typ='TXM', statut='o', into=['K-Epsilon', 'K-Omega'] , position=positionChoice), ##PN PN : parametre vs reCalculeEtape + ), # fin blocTVM + blocRSM = BLOC(condition = "RANSModel == 'Reynolds Stress Model (RSM)'", + RSMChoice = SIMP(typ='TXM', statut='o', into=['Rotta', 'LRR-IP','LRR-QI','SSG'], position=positionChoice), + ), # fin blocRSM + ), # fin bloc_one_point + +# --------------- Spatial filtering (LES) ------------------ + blocOneSpatial = BLOC(condition = "TurbulenceModellingType == 'Spatial filtering (LES)'", + ChoiceOfDescription = SIMP(typ='TXM', statut='o', into=['One-point filtered variables', 'Filtered Density Function (FDF)']), + blocOnePoint = BLOC(condition = "ChoiceOfDescription == 'One-point filtered variables'", + SubgridScaleModel = SIMP(typ='TXM', statut='o', into=['No SGS', 'Smagorinsky','Dynamical model', 'SGS Transport Equations']), + ),# fin bloc_OnePoint + blocFDF = BLOC(condition = "ChoiceOfDescription == 'Filtered Density Function (FDF)'", + SubgridScaleModel = SIMP(typ='TXM', statut='o', into=['SLM model for SGS', 'Viscous SLM model for SGS']), + ),# fin bloc_FDF + ), # fin bloc_one_spatial + +# --------------- One-point PDF ------------------ + blocOnePointPdf = BLOC(condition = "TurbulenceModellingType == 'One-point PDF'", + ChoiceOfDescription = SIMP(typ='TXM', statut='o', into=['Velocity PDF', 'Velocity frequency PDF']), + blocVPdf = BLOC(condition = "ChoiceOfDescription == 'Velocity PDF'", + StochasticModel = SIMP(typ='TXM', statut='o', into=['SLM','GLM'], defaut='SLM'), + ), # fin blocVPdf + blocVFPdf = BLOC(condition = "ChoiceOfDescription == 'Velocity frequency PDF'", + StochasticModel = SIMP(typ='TXM', statut='o', into=['Log-normal model','Gamma model','User-defined form'], defaut='SLM'), + ), # fin blocVFPdf + ), # fin bloc_one_point_pdf + +# --------------- Fully resolved (DNS) ------------------ + # blocNoModel = BLOC(condition = "TurbulenceModellingType == 'Fully resolved (DNS)'", + # ChoiceOfApproach = SIMP(statut='o', typ='TXM', into=['Field-based (DNS)', 'N-Particle_Method']), + # blocField = BLOC(condition = "ChoiceOfApproach == 'Field-based (DNS)'", + # NumericalMethod = SIMP(statut='o', typ='TXM', into=['FV', 'Spectral Method'], + # intoXML=['FV', 'Spectral Method','SPH', 'Vortex Method']), + # ),# fin bloc_Field + # blocNParticle = BLOC(condition = "ChoiceOfApproach == 'N-Particle_Method'", + # NumericalMethod = SIMP(statut='o', typ='TXM', into=['SPH', 'Vortex Method'], + # intoXML=['FV', 'Spectral Method','SPH', 'Vortex Method']), + # ),# fin bloc_N_particle + # ), # fin bloc_no_model + ) # fin du return de la fonction factTurbulence + + + +#------------------------------------------------------ +def prepareFactTurbulenceScalaire(statut, ajout=None , position=None): +#------------------------------------------------------ + listInto = ['Fully resolved (DNS)', 'Spatial filtering (LES)', 'One-point moment', 'One-point PDF'] + if ajout != None : listInto.append(ajout) + return FACT(statut=statut, + TurbulenceModellingType = SIMP(typ='TXM', statut='o', into =listInto, position=position ), + +# --------------- One-point moment ------------------ + blocOnePoint = BLOC(condition= "TurbulenceModellingType == 'One-point moment'", + RANSModel = SIMP(statut="o", typ="TXM", + into=['Algebraic flux models','Turbulent diffusivity models', 'Scalar-flux transport equations']), + # blocAlgebraic = BLOC(condition= "RANSModel == 'Algebraic flux models'", + # blocConsigne = BLOC(condition= "RANSModel == 'Algebraic flux models'", + # Consigne = SIMP(statut="o", homo="information", typ="TXM", defaut='Not implemented yet'), + # ), # fin blocAlgebraic + blocTDM = BLOC(condition = "RANSModel == 'Turbulent diffusivity models'", + TDMChoice = SIMP(typ='TXM', statut='o', into=['SGDH', 'GGDH',]), + ), # fin blocTDM + blocSFTE = BLOC(condition = "RANSModel == 'Scalar-flux transport equations'", + SFTEChoice = SIMP(typ='TXM', statut='o', into=['Pressure-scrambling model', 'EB-DFM',]), + ), # fin blocSFTE + ), # fin bloc_one_point + +# --------------- Spatial filtering (LES) ------------------ + blocOneSpatial = BLOC(condition = "TurbulenceModellingType == 'Spatial filtering (LES)'", + ChoiceOfDescription = SIMP(typ='TXM', statut='o', into=['One-point filtered variables', 'Filtered Density Function (FDF)']), + blocOnePoint = BLOC(condition = "ChoiceOfDescription == 'One-point filtered variables'", + SubgridScaleModel = SIMP(typ='TXM', statut='o', into=['No SGS model', 'SGS diffusivity', 'Transport eqs. for SGS scalar fluxes']), + ),# fin bloc_OnePoint + blocFDF = BLOC(condition = "ChoiceOfDescription == 'Filtered Density Function (FDF)'", + SubgridScaleModel = SIMP(typ='TXM', statut='o', into=['Composition FDF', 'Scalar-velocity FDF', 'Micro-mixing model']), + ),# fin bloc_FDF + ), # fin bloc_one_spatial + +# --------------- One-point PDF ------------------ + blocOnePointPdf = BLOC(condition = "TurbulenceModellingType == 'One-point PDF'", + ChoiceOfDescription = SIMP(typ='TXM', statut='o', into=['Composition PDF','Velocity PDF', 'Micro-mixing models']), + # blocCPdf = BLOC(condition = "(ChoiceOfDescription == 'Composition PDF') or (ChoiceOfDescription == 'Velocity PDF')", + # blocConsigne = BLOC(condition = "(ChoiceOfDescription == 'Composition PDF') or (ChoiceOfDescription == 'Velocity PDF')", + # Consigne = SIMP(statut="o", homo="information", typ="TXM", defaut='Not implemented yet.'), + # ), # fin blocCPdf + # blocVPdf = BLOC(condition = "ChoiceOfDescription == 'Velocity PDF'", + # ), # fin blocVPdf + blocMMMPdf = BLOC(condition = "ChoiceOfDescription == 'Micro-mixing models'", + ChoiceOfModel = SIMP(typ='TXM', statut='o', into=['IEM/CIEM','Curl model','Mapping','EMST'],), + ), # fin blocMMMdf + ), # fin bloc_one_point_pdf + +# --------------- Fully resolved (DNS) ------------------ + # blocNoModel = BLOC(condition = "TurbulenceModellingType == 'Fully resolved (DNS)'", + # ChoiceOfApproach = SIMP(statut='o', typ='TXM', into=['Field-based (DNS)', 'N-Particle_Method']), + # blocField = BLOC(condition = "ChoiceOfApproach == 'Field-based (DNS)'", + # NumericalMethod = SIMP(statut='o', typ='TXM', into=['FV', 'Spectral Method'], + # intoXML=['FV', 'Spectral Method','SPH', 'Vortex Method']), + # ),# fin bloc_Field + # blocNParticle = BLOC(condition = "ChoiceOfApproach == 'N-Particle_Method'", + # NumericalMethod = SIMP(statut='o', typ='TXM', into=['SPH', 'Vortex Method'], + # intoXML=['FV', 'Spectral Method','SPH', 'Vortex Method']), + # ),# fin bloc_N_particle + # ), # fin bloc_no_model + ) # fin du return de la fonction factTurbulence + + +#-------------------------- +def Particle(cardinalite) : +#-------------------------- + return FACT(statut='o', max=cardinalite, + ParticleNature = SIMP(statut='o', typ='TXM', into=['Atoms', 'Molecules', 'Dissipative', 'Fluid Particle', 'Discrete Particle']), + blocAtom = BLOC(condition='ParticleNature == "Atoms"', + AtomsName = SIMP(statut='o', typ=(userAtom,'createObject'),), + Atom = FACT(statut ='o', max= '**', + ChemicalSpecie = SIMP(statut='o', typ='TXM'), + Number = SIMP(statut='o', typ = 'I'), + ElectricCharge = SIMP(statut='o', typ='R'), + MagneticMoment = SIMP(statut='o', typ='R'), + Size = SIMP(statut='f', typ='R'), # relevant ? + ),# Atom + ), # fin b_Atom +# --------------- Molecules ------------------ + blocMolecule = BLOC(condition='ParticleNature == "Molecules"', + MoleculeName = SIMP(statut='o', typ=(userMolecule,'createObject'),), + ChemicalSpecie = FACT(max='**', statut='o', + ChemicalSpecieName = SIMP(statut='o', typ=userAtom), + Proportion = SIMP(statut='o', typ='R', val_max =1), + ), + ElectricCharge = SIMP(statut='o', typ='R'), + MagneticMoment = SIMP(statut='o', typ='R'), + Shape = SIMP(statut='f', typ='TXM', into=['Linear', 'Trigonal Planar', 'Angular', 'Tetrahedral', 'Octahedral', 'Trigonal pyramid', 'Other']), + ), #fin b_Molecule + +# --------------- Dissipative ------------------ + blocDissipative = BLOC(condition='ParticleNature == "Dissipative"', + DPDName = SIMP(statut='o', typ=(userDPD,'createObject'),), + BondedParticles = SIMP(statut="o", typ=bool, defaut=False), + ), # b_Dissipative + +# --------------- Discrete Particle ------------------ + blocDiscrete = BLOC(condition='ParticleNature == "Discrete Particle"', + DiscreteParticleName = SIMP(statut='o', typ=(userDiscrete,'createObject'),), + TypeOfDiscreteParticle = SIMP(statut='o', typ='TXM', into=['Solid', 'Droplets', 'Bubbles','Bio Organism'],), + blocTypeDPSolid = BLOC(condition ='TypeOfDiscreteParticle == "Solid"', + TypeOfSolid = SIMP(statut='o', typ='TXM', into=['Primary Particle', 'Assemblage / Aggregate'], position = 'global'), + b_SolidPrimary = BLOC(condition='TypeOfSolid == "Primary Particle"', + ), + b_SolidAggregate = BLOC(condition='TypeOfSolid == "Assemblage / Aggregate"', + ), + ), +# --------------- Bio Organism ------------------ + blocTypeBioSolid = BLOC(condition='TypeOfDiscreteParticle == "Bio Organism"', + TypeOfOrganism = SIMP(statut='o', typ='TXM', into=['Unicellular', 'Multicellular']), + blocUnicellular = BLOC(condition ='TypeOfOrganism=="Unicellular"', + Unicellular = SIMP(statut='o', typ='TXM', into=["Bactaria"], defaut='Bactaria') + ), + b_Multicellular = BLOC(condition ='TypeOfOrganism=="Multicellular"', + Multicellular = SIMP(statut='o', typ='TXM', into=["Animal","Fongus","Plant"]) + ), + ), # b_TypeBio_Solid + +# --------------- Particule Properties ------------------ + Properties = FACT(statut ='o', + Geometry = SIMP(statut='o', typ='TXM', into=['Sphere', 'Ellopsoids', 'Other Shape']), + b_geom_Sphere = BLOC(condition = 'Geometry == "Sphere"', + ParticleRadius = SIMP(statut='o', typ ='R', val_min = 0), + ), + Weight = FACT(statut = 'o', + Consigne = SIMP(statut="o", homo="information", typ="TXM", defaut='Choose between Mass or Density'), + Mass = SIMP(statut='f', typ ='R', val_min = 0), + Density = SIMP(statut='f', typ ='R', val_min = 0), + ), + Mechanical = SIMP(statut='o', typ='TXM', into=['Rigid', 'Flexible', 'Deformable']), + b_SolidAggregate = BLOC(condition='TypeOfSolid == "Assemblage / Aggregate"', + Morphological = FACT(statut = 'o', + Consigne = SIMP(statut="o", homo="information", typ="TXM", defaut='Choose optional properties'), + FractalDimension = SIMP(statut='f', typ='R'), + NumberOfPrimaryParticle = SIMP(statut ='f',typ='I'), + EquivalentSize = SIMP(statut='f', typ='R'), + Porosity = SIMP(statut='f', typ='R'), + ), # Morphological + ), # b_SolidAggregate + ElectroMagnetic = FACT(statut = 'f', + ElectricCharge = SIMP(statut='o', typ='R'), + MagneticMoment = SIMP(statut='o', typ='R'), + ), + b_SolidAggregateBonded = BLOC(condition='TypeOfSolid == "Assemblage / Aggregate"', + BondedParticles = FACT( + ListOfBondedParticles = SIMP(statut='o', max='**', typ = userParticle), + ), + ), + ), # Properties + ), # b_Discrete + +############################ + + ListOfBondedParticles = FACT(statut='f', + # --------------------------------------# + BondedParticles = FACT(statut='o', max = "**", + NameOfBonded_Particles = SIMP(statut='o', typ='TXM'), + SpeciesinParticle = SIMP(statut='o', min=2, typ='TXM' , max = "**"), + ), # BondedParticles + ), # ListOfBondedParticles + + ListOfInteractions = FACT(statut='o', max = "**", + # ------------------------------------------------# + + BondedInteractions = FACT(statut='o', max = "**", + TypeOfBondedInteraction = SIMP(statut='o', typ='TXM', into=['NoOne', 'Covalent Bond Length', 'FENE', 'Covalent Bond Angle', 'Dihedral Angles', 'Improper Dihedral', 'Frozen Motion' ], defaut='NoOne'), + + #La saisie de l'ensemble des liaisons d'un meme type peut se faire ds le meme bloc (soit ds un fichier, soit manuelle) + #Une seule valeur de distante? est a saisir pour l'ensemble + # bloc_covalent_1 = BLOC(condition = 'TypeOfBondedInteraction in ("Covalent Bond Length","FENE")', + # ), # fin bloc_covalent_1 + +# --------------- Covalent Bond Length ------------------ + blocCovalentLength = BLOC(condition = 'TypeOfBondedInteraction == "Covalent Bond Length"', + InteractionLengthParameters = FACT(statut='o', max="**", + ApplyToBondedParticles = SIMP(statut='o', max='**', typ='TXM'), + SpringStifness = SIMP(statut='o', typ='R', val_min=0), + MeanBondLength = SIMP(statut='o', typ='R', val_min=0), + ), # fin Interation_Length_Parameters + ), # fin BondLengthParameters + +# --------------- Covalent Bond Angle ------------------ + blocCovalentAngle = BLOC(condition = 'TypeOfBondedInteraction == "Covalent Bond Angle"', + InteractionAnglesParameters = FACT(statut='o', max="**", + ApplyToBondedParticles = SIMP(statut='o', max='**', typ='TXM'), + SpringStifness = SIMP(statut='o', typ='R', val_min=0), + MeanBondAngle = SIMP(statut='o', typ='R', val_min=0), + ), # fin Interation_Angles_Parameters + ), # fin bloccovalentlengthand_angle + + #bloc_covalent_length_and_angle = BLOC(condition = 'TypeOfBondedInteraction == "Covalent Bond Length" or TypeOfBondedInteraction == "Covalent Bond Angle"', + # Bond_Parameters = FACT(statut='o', max="**", + # Apply_To_Bonded_Particles = SIMP(statut='o', max='**', typ='TXM'), + # Spring_Stifness = SIMP(statut='o', typ='R', val_min=0), + # bloc_covalent_length = BLOC(condition = 'TypeOfBondedInteraction == "Covalent Bond Length"', + # Mean_Bond_Length = SIMP(statut='o', typ='R', val_min=0), + # ), # fin Bond_Length_Parameters + # bloc_covalent_angle = BLOC(condition = 'TypeOfBondedInteraction == "Covalent Bond Angle"', + # Mean_Bond_Angle = SIMP(statut='o', typ='R', val_min=0), + # ), # fin Bond_Length_Parameters + # ), # fin Bond_Length_Parameters + #), # fin bloc_covalent_length_and_angle + +# --------------- Covalent Bond Angle ------------------ + blocFENE = BLOC(condition = 'TypeOfBondedInteraction == "FENE"', + AppliesToAllParticles = SIMP(statut='o', typ=bool, defaut=True), + blocNotOnAll = BLOC(condition = 'AppliesToAllParticles == False', + FENEParameters = FACT(statut='o', max="**", + SpeciesPair = SIMP(statut='o', max=2, typ='TXM'), + SpringConstant_H = SIMP(statut='o', typ='R', val_min=0), + LMax = SIMP(statut='o', typ='R', val_min=0), + ), # fin FENE_Parameters + ), # fin bloc_not_on_all + blocOnAll = BLOC(condition = 'AppliesToAllParticles == True', + Spring_Constant_H = SIMP(statut='o', typ='R', val_min=0), + LMax = SIMP(statut='o', typ='R', val_min=0), + ), # fin bloc_on_all + ), # fin blocFENE + + blocLeReste = BLOC(condition = 'TypeOfBondedInteraction in ("Dihedral Angles", "Improper Dihedral", "Frozen Motion")', + ParticleName = SIMP(statut="f", typ='TXM'), + Consigne = SIMP(statut="o", homo="information", typ="TXM", defaut='Not Implemented Yet'), + ), + + ), # fin Bonded_Interaction + + # ------------------------------- # + + UnbondedInteractions = FACT(statut='o', max= "**", + + TypeOfUnbondedInteraction = SIMP(statut='o', typ='TXM', into=['No', 'electro_magnetic', 'Repulsion_and_VdW', 'Soft_Potentiel', ], defaut='No', position='global',fenetreIhm='menuDeroulant'), + + blocElec = BLOC(condition = 'TypeOfUnbondedInteraction == "electro_magnetic"', + Permittivity = SIMP(statut='o', typ='R', position='global_jdc'), + Magnetic = SIMP(statut='o', typ=bool, defaut=False,), + blocMagnetic = BLOC(condition = 'Magnetic == True', + Permability = SIMP(statut='o', typ='R'), + ), # bloc_magnetic + ),# fin bloc_elec + + blocVdW = BLOC(condition = 'TypeOfUnbondedInteraction == "Repulsion_and_VdW"', + SpeciesPairParameters = FACT(statut='o', max="**", + TypeRepulsionAndVdW = SIMP(statut='o', typ='TXM', into = [ 'Lennard_Jones', 'Hard_sphere_model']), + SpeciesPair = SIMP(statut='o', max=2, typ='TXM'), + VdWRadius = SIMP(statut='o', typ='R', val_min=0), + blocLennard = BLOC(condition = "TypeRepulsionAndVdW == 'Lennard_Jones'", + DepthOfThePotentialWell = SIMP(statut='o', typ='R', val_min=0), + ), # fin b_Lennard + ), # fin Species_Pair_Parameters + ), # bloc_VdW + + blocParamSoftPotentiel = BLOC(condition = "TypeOfUnbondedInteraction == 'Soft_Potentiel'", + GrootWarrenRepulsion = SIMP(statut='o', typ='R', defaut=25.0, val_min=0), + GrootWarrenCutoff = SIMP(statut='o', typ='R', defaut=1.0, val_min=0), + DragCoefficient = SIMP(statut='o', typ='R'), # les 2 valent 0 pour MD + DragForceCutoff = SIMP(statut='o', typ='R', val_min=0), + ), # b_Param_Soft_Potentiel + + ), # fin UnBonded_Interactions + + # ------------------------------- # + + ExternalFieldInteraction = FACT(statut='o', max= "**", + TypeOfInteractionWithAnExternalField = SIMP(statut='o', typ='TXM', into=['NoOne','gravitational field','electric field','magnetic field', 'Hydrodynamic_Field'], fenetreIhm='menuDeroulant', defaut ='NoOne'), + blocGravite = BLOC(condition = 'TypeOfInteractionWithAnExternalField=="gravitational field"', + G = SIMP(statut='o', typ='R', defaut=9.81), + ), + blocElect = BLOC(condition = 'TypeOfInteractionWithAnExternalField=="electric field"', + ElectricField = prepareChamp('E', ('E',), 1), + ), + blocMagnetic = BLOC(condition = 'TypeOfInteractionWithAnExternalField=="magnetic field"', + MagneticField = prepareChamp('B', ('B',), 1), + ), + blocHydrodynamic = BLOC(condition = 'TypeOfInteractionWithAnExternalField=="hydrodynamic field"', + HydrodynamicField = prepareChamp('U', ('U',), 1), + ), + blocExternalFieldInteraction = BLOC(condition = 'TypeOfInteractionWithAnExternalField != "No"', + FieldAppliesOnAllSpecies = SIMP(statut='o', typ=bool, defaut=True), + blocPorteEspece = BLOC(condition = 'FieldAppliesOnAllSpecies == False ', + SpeciesList = SIMP(statut='o', typ='TXM', max= '**', homo='SansOrdreNiDoublon'), # faire un typ = "espece" + ), + ), # fin b_External_Field_Interaction + ), # fin Interaction_External_Field + + ), # fin List_Of_Interactions + +############################ +) # fin Particle + +#-------------------- +def prepareBlocCPS(): +#-------------------- + return BLOC(condition = 'SystemType == "Classical particle system"', + Particle = Particle('**'), + ) + +#--------------------------- +def prepareBlocFluideMacro(): +#--------------------------- + return BLOC(condition = 'SystemType == "Continuum system"', + ComplexFluid = SIMP(typ=bool, statut='o', defaut = False, position='global'), + FlowNature = SIMP(typ='TXM', statut='o', into =['Laminar', 'Turbulent'], position='global'), + +# --------------------------- Density ------------- + DensityInitialisation = FACT(statut ='o', + DensityValueType = SIMP(typ='TXM', statut ='o', into = ['Value', 'Field'], defaut ='Value'), + blocDensityValue = BLOC(condition = 'DensityValueType == "Value"', + Density = SIMP(typ='R', statut ='o'), + ), + blocDensField= creeBlocPourLesFichiers('DensityValueType == "Field"', 'Density', ListeFormats=listeFormatGenerique, FieldName='DensityFieldName'), + ),# DensityInitialisation + +# --------------------------- Viscosity ------------- + ViscosityInitialisation = FACT(statut ='o', + ViscosityValueType = SIMP(typ='TXM', statut ='o', into = ['Value', 'Field'], defaut ='Value'), + blocViscosityValue = BLOC(condition = 'ViscosityValueType == "Value"', + Viscosity = SIMP(typ='R', statut ='o'), + ), + blocViscosityField = creeBlocPourLesFichiers('ViscosityValueType == "Field"', 'Viscosity', ListeFormats=listeFormatGenerique, FieldName='ViscosityFieldName'), + ), #fin ViscosityityInitialisation + +# --------------------------- Turbulent ------------- + blocFlowNatureTurbulent = BLOC(condition = ' FlowNature == "Turbulent"', + TurbulenceForFlowDynamics = prepareFactTurbulence('o',position='global',positionChoice='reCalculeEtape'), + ), #fin bloc_FlowNature_Turbulent + + DynamicalVariables = FACT(statut ='o', + OriginOfDynamicalVariables = SIMP(statut='o', into =['Given', 'Interaction', 'to be simulated'], typ ='TXM', position='global'), + BlocGivenOrInteraction = BLOC(condition = 'OriginOfDynamicalVariables in ["Given", "Interaction",]', + Steady = SIMP(typ=bool, statut ='o', defaut = True, position = 'global'), + # BlocNotSteady = BLOC(condition = 'Steady == False', + BlocConsigne = BLOC(condition = 'Steady == False', + Consigne = SIMP(statut="o", homo="information", typ="TXM", defaut='Not implemented yet. Will ask for a range of calculation steps.'), + ), #BlocNotSteady + BlocSteady = BLOC(condition = 'Steady == True', + BlocGiven = BLOC(condition = 'OriginOfDynamicalVariables == "Given"', + InSameFile = SIMP(typ=bool, statut ='o', defaut = True, position = 'reCalculeEtape'), + BlocSameFile = creeBlocPourLesFichiers('InSameFile == True', 'DynamicalVariables', ('Med', 'cgns' ), None), + ), #BlocGiven + ), #BlocSteady + ), #BlocGivenOrInteraction + PressureDefinition = FACT(statut ='o', + Pressure = SIMP(typ=(dynamicVariable,'createObject'), statut='o', defaut ='Pressure', homo='constant'), + BlocSteady = BLOC(condition = 'Steady == True', + BlocFluidInSame = creeBlocPourLesFichiers('InSameFile == False', 'Pressure', ('Med', 'cgns' ), None), + BlocGivenPressure = BLOC(condition = 'OriginOfDynamicalVariables == "Given"', + PressureFieldName = SIMP(typ='TXM',statut='o'), + ), + BlocInteractionPressure = BLOC(condition = 'OriginOfDynamicalVariables == "Interaction"', + InteractionName = SIMP(typ=interaction,statut='o'), + Consigne = SIMP(statut="o", homo="information", typ="TXM", defaut='Create and choose suitable interaction'), + ), + ), + BlocSimulatedPressure = BLOC(condition = 'OriginOfDynamicalVariables == "to be simulated"', + SourceTerm = SIMP(typ=bool, statut='o', defaut=False), + blocSourceTerm = prepareTermeSourceDynVar('SourceTerm==True'), + ), + ), + VelocityDefinition = FACT(statut ='o', + blocFlowNatureTurbulent = BLOC(condition = 'FlowNature == "Turbulent"', + #sousBlocFlowNatureTurbulent = BLOC(condition = 'TurbulenceModellingType != "Fully resolved (DNS)"', + AverageVelocity = SIMP(typ=(dynamicVariable,'createObject'), statut='o', defaut ='Average_Velocity', homo='constant'), + BlocSteadyGivenVelocity1 = BLOC(condition = 'OriginOfDynamicalVariables == "Given" and Steady == True ', + AverageVelocityValue = SIMP(typ='R', statut='o' ), + ), + #), + ), + #blocFlowNatureLaminar = BLOC(condition = ' FlowNature == "Laminar" or TurbulenceModellingType == "Fully resolved (DNS)"', + blocFlowNatureLaminar = BLOC(condition = 'FlowNature == "Laminar"', + FluidVelocity = SIMP(typ=(dynamicVariable,'createObject'), statut='o', defaut ='Fluid_Velocity', homo='constant'), + BlocSteady = BLOC(condition = 'Steady == True', + BlocVelocityInSame = creeBlocPourLesFichiers('InSameFile == False', 'Velocity', ('Med', 'cgns' ), None), + BlocSteadyGivenVelocity2 = BLOC(condition = 'OriginOfDynamicalVariables == "Given"', + VelocityFieldName = SIMP(typ='TXM',statut='o'), + ), + ), + ), + BlocSimulatedVelocity = BLOC(condition = 'OriginOfDynamicalVariables == "to be simulated"', + SourceTerm = SIMP(typ=bool, statut='o', defaut=False), + blocSourceTerm = prepareTermeSourceDynVar('SourceTerm==True'), + ), + BlocSteady = BLOC(condition = 'Steady == True', + BlocInteractionVelocity = BLOC(condition = 'OriginOfDynamicalVariables == "Interaction"', + InteractionName = SIMP(typ=interaction,statut='o'), + Consigne = SIMP(statut="o", homo="information", typ="TXM", defaut='Create and choose suitable interaction'), + ), + ), + ), + BFlowNatureTurbulent = BLOC(condition ='FlowNature == "Turbulent"', + # K-epislon ou k-omega + blocTurbulenceTWMChoice1 = BLOC(condition = 'TVMChoice == "K-Epsilon" or TVMChoice == "K-Omega"', + KDefinition = FACT(statut ='o', + Name = SIMP(typ=(scalar,'createObject'), statut='o', defaut ='K', homo='constant'), + BlocSteady = BLOC(condition = 'Steady == True', + BlocKInSame = creeBlocPourLesFichiers('InSameFile == False', 'K', ('Med', 'cgns' ), None), + BlocKGiven = BLOC(condition = 'OriginOfDynamicalVariables == "Given"', + KFieldName = SIMP(typ='TXM',statut='o', defaut='K'), + ), + BlocKInteraction = BLOC(condition = 'OriginOfDynamicalVariables == "Interaction"', + InteractionName = SIMP(typ=interaction,statut='o'), + Consigne = SIMP(statut="o", homo="information", typ="TXM", defaut='Create and choose suitable interaction'), + ), + ), + BlocSimulatedKDefinition = BLOC(condition = 'OriginOfDynamicalVariables == "to be simulated"', + SourceTerm = SIMP(typ=bool, statut='o', defaut=False), + blocSourceTerm = prepareTermeSourceDynVar('SourceTerm==True'), + ), + ), # KDefinition + ),# fin blocTurbulenceTWMChoice1 + + # REM : L'existence des mc TVMChoice et RSMChoice est exclusive, du coup une évaluation de condition + # qui contient les deux renvoie forcément une exception, le bloc n'est alors pas evalué + # sauf si le mc de la première condition existe (ordre évaluation du or) + # blocTurbulenceTWMChoice2 = BLOC(condition = 'TVMChoice == "K-Epsilon" or RSMChoice != None', + # blocTurbulenceTWMChoice2 = BLOC(condition = '(RSMChoice != None) or (TVMChoice == "K-Epsilon")', + # blocTurbulenceTWMChoice2 = BLOC(condition = 'TVMChoice == "K-Epsilon"', + blocTurbulenceTWMChoice2 = BLOC(condition = 'RANSModel == "Reynolds Stress Model (RSM)" or TVMChoice == "K-Epsilon"', + EpsilonDefinition = FACT(statut ='o', + Name = SIMP(typ=(scalar,'createObject'), statut='o', defaut ='Epsilon', homo='constant'), + BlocSteady = BLOC(condition = 'Steady == True', + BlocEpsilonInSame = creeBlocPourLesFichiers('InSameFile == False', 'Epsilon', ('Med', 'cgns' ), None), + BlocEpsilonGiven = BLOC(condition = 'OriginOfDynamicalVariables == "Given"', + EpsilonFieldName = SIMP(typ='TXM',statut='o'), + ), + BlocEpsilonInteraction = BLOC(condition = 'OriginOfDynamicalVariables == "Interaction"', + InteractionName = SIMP(typ=interaction,statut='o'), + Consigne = SIMP(statut="o", homo="information", typ="TXM", defaut='Create and choose suitable interaction'), + ), + ), + BlocSimulatedEpsilonDefinition = BLOC(condition = 'OriginOfDynamicalVariables == "to be simulated"', + SourceTerm = SIMP(typ=bool, statut='o', defaut=False), + blocSourceTerm = prepareTermeSourceDynVar('SourceTerm==True'), + ), + ), #EpsilonDefinition + ), # bloc_Turbulence_TWMChoice2 + + blocTurbulenceTWMChoice3 = BLOC(condition = 'TVMChoice == "K-Omega"', + OmegaDefinition = FACT(statut ='o', + Name = SIMP(typ=(scalar,'createObject'), statut='o', defaut ='Omega', homo='constant'), + BlocSteady = BLOC(condition = 'Steady == True', + BlocOmegaInSame = creeBlocPourLesFichiers('InSameFile == False', 'Omega', ('Med', 'cgns' ), None), + BlocOmegaGiven = BLOC(condition = 'OriginOfDynamicalVariables == "Given"', + OmegaFieldName = SIMP(typ='TXM',statut='o'), + ), + BlocOmegaInteraction = BLOC(condition = 'OriginOfDynamicalVariables == "Interaction"', + InteractionName = SIMP(typ=interaction,statut='o'), + Consigne = SIMP(statut="o", homo="information", typ="TXM", defaut='Create and choose suitable interaction'), + ), + ), + BlocSimulatedOmegaDefinition = BLOC(condition = 'OriginOfDynamicalVariables == "to be simulated"', + SourceTerm = SIMP(typ=bool, statut='o', defaut=False), + blocSourceTerm = prepareTermeSourceDynVar('SourceTerm==True'), + ), + ), + ), # blocTurbulenceTWMChoice3 + + # blocTurbulenceRSMChoice1 = BLOC(condition = "(RANSModel == 'Reynolds Stress Model (RSM)') and (RSMChoice !=None)", + blocTurbulenceRSMChoice1 = BLOC(condition = "RSMChoice !=None", + RijDefinition = FACT(statut ='o', + Name = SIMP(typ=(scalar,'createObject'), statut='o', defaut ='Rij', homo='constant'), + BlocSteady = BLOC(condition = 'Steady == True', + BlocRijInSame = creeBlocPourLesFichiers('InSameFile == False', 'Rij', ('Med', 'cgns' ), None), + BlocRijGiven = BLOC(condition = 'OriginOfDynamicalVariables == "Given"', + RijFieldName = SIMP(typ='TXM',statut='o'), + ), + BlocRijInteraction = BLOC(condition = 'OriginOfDynamicalVariables == "Interaction"', + InteractionName = SIMP(typ=interaction,statut='o'), + Consigne = SIMP(statut="o", homo="information", typ="TXM", defaut='Create and choose suitable interaction'), + ), + ), + BlocSimulatedRijDefinition = BLOC(condition = 'OriginOfDynamicalVariables == "to be simulated"', + SourceTerm = SIMP(typ=bool, statut='o', defaut=False), + blocSourceTerm = prepareTermeSourceDynVar('SourceTerm==True'), + ), + ), + ), # blocTurbulenceRSMChoice1 + + # blocTurbulenceRSMChoice2 = BLOC(condition = 'RSMChoice != None', + # EpsilonDefinition = FACT(statut ='o', + # Name = SIMP(typ=(scalar,'createObject'), statut='o', defaut ='Epsilon', homo='constant'), + # BlocSteady = BLOC(condition = 'Steady == True', + # BlocEpsilonInSame = creeBlocPourLesFichiers('InSameFile == False', 'Epsilon', ('Med', 'cgns' ), None), + # BlocEpsilonGiven = BLOC(condition = 'OriginOfDynamicalVariables == "Given"', + # EpsilonFieldName = SIMP(typ='TXM',statut='o'), + # ), + # BlocEpsilonInteraction = BLOC(condition = 'OriginOfDynamicalVariables == "Interaction"', + # InteractionName = SIMP(typ=interaction,statut='o'), + # Consigne = SIMP(statut="o", homo="information", typ="TXM", defaut='Create and choose suitable interaction'), + # ), + # ), + # BlocSimulatedEpsilonDefinition = BLOC(condition = 'OriginOfDynamicalVariables == "to be simulated"', + # SourceTerm = SIMP(typ=bool, statut='o', defaut=False), + # blocSourceTerm = prepareTermeSourceDynVar('SourceTerm==True'), + # ), + # ), #EpsilonDefinition + # ), # bloc_Turbulence_RSMChoice2 + + ), #BFlowNatureTurbulent + ), # DynamicalVariables + +# ---------------------- Effets thermiques + Thermal = FACT(statut ='o', + ThermalEffects = SIMP(typ='TXM', statut='o', into =['Non thermal', 'Thermal'] , defaut='Thermal', position='global' ), + blocNonThermalEffects = BLOC(condition = 'ThermalEffects == "Non thermal"', + ReferenceTemperature = SIMP(typ='R', statut='o', val_min=-273.15 ), + ), # fin bloc_NonThermal + bloc_ThermalEffects_ = BLOC(condition = 'ThermalEffects == "Thermal"', + ConductivityValueType = SIMP(typ='TXM', statut ='o', into = ['Value', 'Field'], defaut ='Value'), + blocCondValue = BLOC (condition = 'ConductivityValueType == "Value"', + Conductivity = SIMP(typ='R', statut ='o'), + ), + blocCondField = creeBlocPourLesFichiers('ConductivityValueType == "Field"', 'Conductivity', ListeFormats=listeFormatGenerique, FieldName='conductivityFieldName'), + #ActiveOnFlowEffect = ActiveOnFlowEffect(), + ), + ),# fin Fact Thermal + +# ---------------------- Scalaires + + blocScalarFluidTurbulentOrLaminar = BLOC(condition = "(ComplexFluid == False and FlowNature == 'Turbulent') or (ComplexFluid == False and FlowNature == 'Laminar')", + Scalars = FACT(statut = 'o', + withScalars = SIMP(statut='o', typ=bool, defaut=False), + blocwithScalars = BLOC(condition = 'withScalars == True', + blocFlowNatureTurbulentForScalars = BLOC(condition = ' FlowNature == "Turbulent"', + AsTurbulenceForFlowDynamics = SIMP(statut='o', typ=bool, defaut=True), + BlocAsTFFD = BLOC(condition = "AsTurbulenceForFlowDynamics == False", + ScalarsTurbulenceModelling = prepareFactTurbulenceScalaire('o',), + ), + ), + blocThermalEffectsOn = BLOC(condition = ' ThermalEffects == "Thermal"', + TemperatureScalar = FACT(statut ='o', + #Name = SIMP(typ=(scalar,'createObject'), statut='o', defaut ='Temperature', homo='constant', position='reCalculeEtape'), + Name = SIMP(typ=(scalar,'createObject'), statut='o', defaut ='Temperature', homo='constant'), + SourceTerm = SIMP(typ=bool, statut='o', defaut=False), + blocSourceTerm = prepareTermeSource('SourceTerm==True'), + TemperatureInitialisation = FACT(statut ='o', + OriginOfThermalFluxField = SIMP(statut='o', into =['Given', 'Interaction', 'to be simulated'], typ ='TXM'), + BlocGiven = creeBlocPourLesFichiers('OriginOfThermalFluxField == "Given"', 'Temperature', ('Med', 'cgns' ), FieldName='FieldName'), + ),# fin TemperatureInitialisation + ),# TemperatureScalar + ), # fin bloc_ThermalEffects_On + Scalar = FACT(statut = 'o', max ='**', + Name = SIMP(typ=(scalar,'createObject'), statut='o',), + DiffusivityValueType = SIMP(typ='TXM', statut ='o', into = ['Value', 'Field'], defaut ='Value'), + blocDiffValue = BLOC(condition = 'DiffusivityValueType == "Value"', + Diffusivity = SIMP(typ='R', statut ='o'), + ), + blocDiffField = creeBlocPourLesFichiers('DiffusivityValueType == "Field"', 'Diffusivity', ListeFormats=listeFormatGenerique, FieldName='DiffusivityFieldName'), + OriginOfScalar = SIMP(statut='o', into =['Given', 'Interaction', 'to be simulated'], typ ='TXM', defaut='to be simulated'), + blocSimulatedScalar = BLOC(condition = 'OriginOfScalar == "to be simulated"', + SourceTerm = SIMP(typ=bool, statut='o', defaut=False), + blocSourceTerm = prepareTermeSource('SourceTerm==True'), + Initialisation = FACT(statut ='o', + InitialisationOfScalar = SIMP(statut='o', into =['ValueInit', 'FileInit', 'InteractionInit'], typ ='TXM', defaut='ValueInit'), + BlocFileInit = creeBlocPourLesFichiers('InitialisationOfScalar == "FileInit"', 'ScalarInit', ListeFormats = listeFormatGenerique, FieldName='ScalarInitField'), + BlocInteractionInit = BLOC(condition = 'InitialisationOfScalar == "InteractionInit"', + InteractionName = SIMP(typ=interaction,statut='o'), + Consigne = SIMP(statut="o", homo="information", typ="TXM", defaut='Create and choose suitable interaction'), + ), + BlocValueInit = BLOC(condition = 'InitialisationOfScalar == "ValueInit"', + ValueInit = SIMP (statut ='o', typ='R'), + ), + ), + ), + blocInteractionScalar = BLOC(condition = 'OriginOfScalar == "Interaction"', + InteractionName = SIMP(typ=interaction,statut='o'), + Consigne = SIMP(statut="o", homo="information", typ="TXM", defaut='Create and choose suitable interaction'), + ), + blocGivenScalar = creeBlocPourLesFichiers('OriginOfScalar == "Given"', 'Scalar', ListeFormats = listeFormatGenerique, FieldName='ScalarField'), + EffectOnFlowDynamic = SIMP(typ='TXM', statut='o', into=[ 'Passive', 'Active'], defaut='Passive', ), + blocScalarActiveOnFlowDynamic = BLOC(condition = ' EffectOnFlowDynamic == "Active"', + ActiveOnFlowEffect = ActiveOnFlowEffect(), + ), + blocScalarFluidTurbulentAndNonComplexe = BLOC (condition = "FlowNature == 'Turbulent'", + ScalarFluxModel = prepareFactTurbulenceScalaire('f'), + ), # bloc_scalar_FluidTurbulentandNonComplexe + ),# Scalar + ),# blocwWithScalars + ),# Scalars + ), # fin FluidTurbulentandNonComplexe + # il faut une validation de coherence entre l existence de tous les turbulencesModelling + )# fin bloc_FluideMacro + +#---------------------------------------- +def ActiveOnFlowEffect(inTemperature=True): +#---------------------------------------- + return FACT(statut = 'o', max='**', + RelationType = SIMP(statut = 'o', into =['Equation Of State', 'Force-Flux Relation'], typ ='TXM'), + bloc_EOS = BLOC(condition = 'RelationType == "Equation Of State"', + TypeOfEquationOfState = SIMP(statut='o', into =['variable density', 'compressible'], typ ='TXM'), + ), + bloc_NonEOSAndSimple=BLOC(condition = 'RelationType == "Force-Flux Relation" and ComplexFluid == False', + TypeOfForceFluxRelation = SIMP(statut='o', into =['Viscosity', 'Diffusivity', 'Thermal Conductivity'], intoXML=['Viscosity', 'Diffusivity', 'Thermal Conductivity','Shear-stress closure', 'Scalar flux'], typ ='TXM', ), + blocViscosity=BLOC(condition = 'TypeOfForceFluxRelation == "Viscosity" ', + ViscosityLaw=SIMP(typ='TXM', statut = 'o', into=['law1', 'law2']), + ), + blocDiffusivity=BLOC(condition = 'TypeOfForceFluxRelation == "Diffusivity"', + DiffusivityLaw=SIMP(typ='TXM', statut = 'o', into=['law1', 'law2']), + ), + blocConductivity=BLOC(condition = 'TypeOfForceFluxRelation == "Thermal Conductivity"', + ConductivityLaw=SIMP(typ='TXM', statut = 'o', into=['law1', 'law2']), + ), + ), +) + +#-----------------------------------------------------# +def prepareBoundaryCondition(): + return FACT(statut='o',max = '**', # max = nb de facette de bord + TypeOfBoundaryCondition = SIMP(statut='o', typ='TXM', into=['Inlet', 'Outlet', 'Symmetry','Periodicity', 'Wall', 'Free Surface'], ), + + blocDesigneMesh = BLOC(condition = "SystemType == 'Continuum system'", + ApplyOnGroups = SIMP(statut ='o', typ=meshGroup, max='**', homo='SansOrdreNiDoublon', + filtre=( '(set(MeshIdentifiers).intersection( set(self.getParentsWithId().getListeUserASSD("MeshId")) ) != set()) ', + ( ('MeshIdentifiers', 'self.etape.getChild("blocModeleNumeriqueContinuum").getChild("NumericalModel")'), ) + ), + ), + ), + blocDesigne_Shape = BLOC(condition = "SystemType == 'Classical particle system'", + #ApplyOnGroups = SIMP (statut ='o', typ=spatialRegion, max='**' + ApplyOnGroups = SIMP (statut ='o', typ=meshGroup, max='**', homo='SansOrdreNiDoublon', + filtre=( '(set(MeshIdentifiers).intersection( set(self.getParentsWithId().getListeUserASSD("MeshId")) ) != set()) ', + ( ('MeshIdentifiers', 'self.etape.getChild("blocModeleNumeriqueClassical").getChild("NumericalModel")'), ) + ), + ), + ), + + blocOnStateVariable = BLOC(condition = "TypeOfBoundaryCondition not in ['Wall',]", + ApplyOnStateVariable = SIMP (statut ='o', typ=stateVariable, max='**', homo='SansOrdreNiDoublon', + filtre=( 'etape in set(self.getEtapes()) ', (('etape', None),), ), #Il ne faut pas proposer les variables d'état des autres composants. + ), #PNPN A FAIRE : fenetreIhm='menuDeroulant' + ), + blocPeriodique = BLOC(condition = "TypeOfBoundaryCondition == 'Periodic'", + Direction = SIMP(statut='o', typ='TXM', into=['X','Y','Z', 'XYZ']), + ), # b_periodique + blocInlet = BLOC(condition = "TypeOfBoundaryCondition == 'Inlet'", + FormulationOfBoundary= SIMP(statut='o', typ='TXM', into=['Dirichlet','Neumann','Cauchy']), + blocDirichlet = BLOC(condition = 'FormulationOfBoundary == "Dirichlet"', + regles=(AU_MOINS_UN('InletProfile','IntegratedValue','IntegratedVectorValue',), + EXCLUS ('InletProfile','IntegratedValue','IntegratedVectorValue',), ), + Consigne = SIMP(statut ="o", homo="information", typ="TXM", defaut = "Choose between InletProfile,IntegratedValue,IntegratedVectorValue "), + InletProfile = SIMP (statut ='f', typ='TXM'), + IntegratedValue = SIMP (statut='f', typ='R'), + IntegratedVectorValue = FACT(statut='f', + U = SIMP (statut ='o', typ='R'), + V = SIMP (statut ='o', typ='R'), + W = SIMP (statut ='o', typ='R'), + ), + #PN : faire une regle + ), + blocNeumann = BLOC(condition = 'FormulationOfBoundary == "Neumann"', + Flux = SIMP (statut ='o', typ='TXM'), + ), + blocCauchy = BLOC(condition = 'FormulationOfBoundary == "Cauchy"', + ImposedFlux = SIMP (statut ='o', typ='TXM'), + _IntegratedValue = SIMP (statut='o', typ='R'), + ), + ), # b_inlet + blocWall = BLOC(condition = "TypeOfBoundaryCondition == 'Wall'", + VelocityAtBoundary = FACT(statut='o', + SlipVelocity = SIMP(statut='o', typ='R', defaut= 0.0), + WallMotion = FACT(statut='o', + U = SIMP (statut ='o', typ='R'), + V = SIMP (statut ='o', typ='R'), + W = SIMP (statut ='o', typ='R'), + ), + ), + LevelOfDescription = FACT(statut='o', + blocWall = BLOC(condition = "FlowNature == 'Turbulent'", ##JP+CH TODO : Choix des lois en fct du type du TurbulenceModelingType + WallFunction = SIMP(statut ='o', typ='TXM', + into=['No wall function','1-scale model (Log law)', + '2-scale model (Log law)','Scalable 2-scale model (Log law)', + ], defaut='No wall function', fenetreIhm='menuDeroulant'), + ), + ), + ), # b_Wall + + ) # Boundary_Conditions + + +# def prepareBoundaryCondition(): +# return FACT(statut='o',max = '**', # max = nb de facette de bord +# ApplyOnStateVariable = SIMP (statut ='o', typ=stateVariable, ), #PNPN A FAIRE : fenetreIhm='menuDeroulant' +# blocDesigneMesh = BLOC(condition = "SystemType == 'Continuum system'", +# ApplyOnGroups = SIMP (statut ='o', typ=meshGroup, max='**', homo='SansOrdreNiDoublon'), +# ), +# blocDesigne_Shape = BLOC(condition = "SystemType == 'Classical particle system'", +# ApplyOnCadGroups = SIMP (statut ='o', typ=spatialRegion, max='**'), +# ), +# TypeOfBoundaryCondition = SIMP(statut='o', typ='TXM', into=['Inlet', 'Outlet', 'Symmetry','Periodicity', 'Wall', 'Free Surface'], ), +# blocPeriodique = BLOC(condition = "TypeOfBoundaryCondition == 'Periodic'", +# Direction = SIMP(statut='o', typ='TXM', into=['X','Y','Z', 'XYZ']), +# ), # b_periodique +# blocInlet = BLOC(condition = "TypeOfBoundaryCondition == 'Inlet'", +# FormulationOfBoundary= SIMP(statut='o', typ='TXM', into=['Dirichlet','Neumann','Cauchy']), +# blocDirichlet = BLOC(condition = 'FormulationOfBoundary == "Dirichlet"', +# regles=(AU_MOINS_UN('InletProfile','IntegratedValue','IntegratedVectorValue',), +# EXCLUS ('InletProfile','IntegratedValue','IntegratedVectorValue',), ), +# #Consigne = SIMP(statut ="o", homo="information", typ="TXM", defaut = "Choose between InletProfile,IntegratedValue,IntegratedVectorValue "), +# InletProfile = SIMP (statut ='f', typ='TXM'), +# IntegratedValue = SIMP (statut='f', typ='R'), +# IntegratedVectorValue = FACT(statut='f', +# x = SIMP (statut ='o', typ='R'), +# y = SIMP (statut ='o', typ='R'), +# z = SIMP (statut ='o', typ='R'), +# ), +# #PN : faire une regle +# ), +# blocNeumann = BLOC(condition = 'FormulationOfBoundary == "Neumann"', +# Flux = SIMP (statut ='o', typ='TXM'), +# ), +# blocCauchy = BLOC(condition = 'FormulationOfBoundary == "Cauchy"', +# ImposedFlux = SIMP (statut ='o', typ='TXM'), +# IntegratedValue = SIMP (statut='o', typ='R'), +# ), +# ), # b_inlet +# ) # Boundary_Conditions + + + + +JdC = JDC_CATA ( + #PN : TODO : regles = (AU_PLUS_UN('DataTransfer_Aspects',),), + code = 'Vimmp', + # faire un validateur qui verifie que si on active reactions chimiques il faut que les masses molaires soient rentrees +) + +Component = OPER(nom='Component', sd_prod=composant, + SystemType = SIMP(typ='TXM', into=['Quantum system', 'Classical particle system', 'Continuum system'], statut='o',position='global'), + PhysicalDescription = FACT(statut = 'o', + blocFluideMacro = prepareBlocFluideMacro(), + blocCPS = prepareBlocCPS(), + ), + blocModeleNumeriqueQuantum = prepareBlocSystemType('Quantum system'), + blocModeleNumeriqueClassical = prepareBlocSystemType('Classical particle system'), + blocModeleNumeriqueContinuum = prepareBlocSystemType('Continuum system'), + BoundaryConditions = FACT(statut = 'o', + BoundaryCondition = prepareBoundaryCondition(), + ) +) + +Species = PROC(nom='Species', + Specie = FACT(statut='o', max ="**", + Name = SIMP(statut='o', typ=(especeChimique,'createObject') ), + MolarMass = SIMP(statut='f', typ='R',), + ) +) + +def monBlocInteractionTypeChamp (): + return BLOC (condition = '1 == 1' , # a distinguer selon les cas + fieldNameInOrigine = SIMP(typ='TXM', statut='o'), + fieldNameInDestination = SIMP(typ='TXM', statut='o'), + ) + +def TousSelonLeTypeDeFormatDisponible(condition, prefixName=''): + TransfertType = SIMP(typ='TXM', statut='o', into =['File', 'Memory', 'CorbaObject']) + maListe = list(dictCodeFormat.keys()) + dicoArgs={} + #index=0 + #for Solv1 in maListe[index:]: + # for Solv2 in maListe[index:]: + # #print (Solv1,Solv2, calculCommun(Solv1, Solv2,dictCodeFormat)) + # print ('PNPN attention changement de dictCodeFormat tant que getEficasAttribut n est pas correct') + # conditionSolv = 'TransfertType == "File" and getEficasAttribut(origine,"Solver")==Solv1 and getEficasAttribut(destination,"Solver")==Solv2' , + # conditionSolv = 'TransfertType == "File"' + # monBlocFichier=creeBlocPourLesFichiers (conditionSolv, 'FileName', calculCommun(Solv1, Solv2,dictCodeFormat)) + # dicoArgs['monBlocFichier'+str(index)]=monBlocFichier + # index=index+1 + mesFormats=set() + for solv1 in dictCodeFormat.keys() : + for f in dictCodeFormat[solv1] : mesFormats.add(f) + conditionSolv='TransfertType == "File"' + BlocFichier=creeBlocPourLesFichiers (conditionSolv, prefixName, mesFormats, None) + dicoArgs['BlocFichier']=BlocFichier + monBlocChamp = BLOC(condition = "TransfertType=='File'", FieldName=SIMP(typ='TXM', statut='o')) + dicoArgs['monBlocChamp']=monBlocChamp + return BLOC(condition = condition,TransfertType=TransfertType, **dicoArgs) + +def SelonLeTypeDeFormatDisponibleMapper(condition): + TransferType = SIMP(typ='TXM', statut='o', into =['File', 'Memory', 'CorbaObject']) + maListe = list(dictCodeFormat.keys()) + dicoArgs={} + index=0 + for Solv1 in maListe[index:]: + for Solv2 in maListe[index:]: + #print (Solv1,Solv2, calculCommun(Solv1, Solv2,dictCodeFormat)) + print ('PNPN attention changement de dictCodeFormat tant que getEficasAttribut n est pas correct') + conditionSolv = 'TransferType == "File" and getEficasAttribut(origine,"Solver")==Solv1 and getEficasAttribut(destination,"Solver")==Solv2' , + conditionSolv = 'TransferType == "File"' + monBlocFichier=creeBlocPourLesFichiers (conditionSolv, '', calculCommun(Solv1, Solv2,dictCodeFormat),None) + dicoArgs['monBlocFichier'+str(index)]=monBlocFichier + index=index+1 + BlocChamp = BLOC(condition = "TransferType=='File'", FieldName=SIMP(typ='TXM', statut='o')) + dicoArgs['BlocChamp'] = BlocChamp + return BLOC(condition = condition,TransferType=TransferType, **dicoArgs) + +Interpolator = OPER (nom= 'Interpolator',sd_prod=interpolator, + InterpolatorType=SIMP(statut='o', typ='TXM', into = list(dictInterpolatorFormat.keys())), + blocMedCoupling= BLOC(condition="InterpolatorType == 'Med Coupling'", + TargetMeshIdentifier = SIMP(statut ='o', typ = meshIdentifier,), + InterpolationType = SIMP(statut ='o', typ='TXM', into=['P0P0','P0P1','P1P1','P1P0'],), + ), +) +Converter = OPER (nom= 'Converter',sd_prod=converter) + +Interactions = PROC(nom='Interactions', + + IOAspects = FACT(statut='o', + + #WorkingDirectory = SIMP(statut='o', typ='Repertoire', defaut='/tmp'), + + FileTransfer = FACT(statut='f', max='**', + TransferId = SIMP(statut='o', typ=(fileId,'createObject'),), + monBlocFormat = creeBlocPourLesFichiers('1', '', listeFormatGenerique, FieldName=None ), + ), + MemoryTransfer = FACT(statut='f', max='**', + TransferId = SIMP(statut='o', typ=(memoryId,'createObject'),), + ), + CorbaTransfer = FACT(statut='f', max='**', + TransferId = SIMP(statut='o', typ=(corbaId,'createObject'),), + ), + ), + + + Interaction = FACT(max = '**', + InteractionName = SIMP(statut='o', typ=(interaction,'createObject'),), + From = SIMP(typ=modeleNumDuCompo, statut='o'), + To = SIMP(typ=modeleNumDuCompo, statut='o'), + # ApplyOnStateVariable = SIMP(statut ='o', typ=stateVariable), #PNPN A FAIRE : fenetreIhm='menuDeroulant' + InvolvedStateVariable = SIMP(statut ='o', typ=stateVariable), #PNPN A FAIRE : Seulement du composant d'origine From + # monBloc_FFFF = BLOC ( + # condition = 'getEficasAttribut(From,"ModelType") == "Fields" and getEficasAttribut(To,"ModelType") == "Fields"' , + # TermeLE = SIMP(typ='TXM', statut='o', into = dictTermeLE['Fields','Fields'],fenetreIhm='menuDeroulant'), + # ), + # monBloc_DPDP = BLOC ( + # condition = 'getEficasAttribut(From,"ModelType") == "Particles" and getEficasAttribut(To,"ModelType") == "Particles"' , + # TermeLE = SIMP(typ='TXM', statut='o', into = dictTermeLE['Particles','Particles'],fenetreIhm='menuDeroulant'), + # ), + # monBloc_FFDP = BLOC ( + # condition = 'getEficasAttribut(From,"ModelType") == "Fields" and getEficasAttribut(To,"ModelType") == "Particles"' , + # TermeLE = SIMP(typ='TXM', statut='o', into = dictTermeLE['Fields','Particles'],fenetreIhm='menuDeroulant'), + # ), + # monBloc_DPFF = BLOC ( + # condition = 'getEficasAttribut(From,"ModelType") == "Particles" and getEficasAttribut(To,"ModelType") == "Fields"' , + # TermeLE = SIMP(typ='TXM', statut='o', into = dictTermeLE['Particles','Fields'],fenetreIhm='menuDeroulant'), + # ), + InteractionConfiguration = FACT(statut='o', + + OutputId = SIMP(statut='o',typ=(transferId,),), + FieldName=SIMP(typ='TXM', statut='o'), + # ComponentProduction = FACT(statut='o', + # monBlocFormat = TousSelonLeTypeDeFormatDisponible("1", 'ComponentProduction' ), + # ), + # ), + #CouplingMode = SIMP(typ='TXM', statut='o', into =['Direct', 'DataProcessing', 'Conversion']), + CouplingMode = SIMP(typ='TXM', statut='o', into =['Direct', 'DataProcessing']), + #monBlocDirect = TousSelonLeTypeDeFormatDisponible("CouplingMode=='Direct'" ), + + monBlocDataProcessing = BLOC (condition = "CouplingMode=='DataProcessing'", + DataProcessingNode = FACT(min=1, max='**', statut ='o', + Tool = SIMP(typ=mapper, statut ='o'), + OutputId = SIMP(statut='o',typ=(transferId,),), + FieldName = SIMP(typ='TXM', statut='o'), + monBlocInterpolator = BLOC (condition = "(Tool != None) and (isinstance(Tool,interpolator))", + FieldNature = SIMP(typ='TXM', statut='o', into=['ExtensiveMaximum', 'IntensiveMaximum', + 'ExtensiveConservation', 'IntensiveConservation']), #PN: DICO pour le into avec key==Tool + ), + ), + ), #fin monBlocDataProcessing + ), #fin InteractionConfiguration + ), +) + + + +EnvironementAspects = PROC(nom ="EnvironementAspects", + WorkflowName = SIMP(statut='o', typ='TXM', defaut='MyStudyCasename'), #PN: -> path + WorkingDirectory = SIMP(statut='o', typ='Repertoire', defaut='/tmp'), +) + +#Le dictionnaire dict_condition est un dictionnaire utilisé par eficas +# pour les position='global_jdc' et position='inGetAttribut' +dict_condition={ +'ChoiceOfApproach': ('Interactions', 'Component'), +'Interactions' : ( 'Component'), +} + +TemporalAspects = PROC(nom ="TemporalAspects", + Simulated_Time_Laps = FACT(statut='o', max='**', + name = SIMP(statut='o', typ=(simulatedTime,'createObject'),), + initialTime = SIMP(statut='o', typ='R'), + finalTime = SIMP(statut='o', typ='R'), + timeDiscretization = SIMP(statut ='o', typ = 'TXM', into = ['Constant Time Step', 'Varying Time Step']), + bloc_Constant = BLOC (condition = 'timeDiscretization == "Constant Time Step"', + constantTimeStep = SIMP (statut ='o', typ = 'R'), + ), + bloc_Varying = BLOC (condition = 'timeDiscretization == "Varying Time Step"', + CFLNumberCriteria = SIMP (statut ='o', typ = 'R'), + FourierNumberCriteria = SIMP (statut ='o', typ = 'R'), + ), + ), +) + + + + +# +# ----------------------------------------- +SpatialAspects = PROC(nom='SpatialAspects', +# ----------------------------------------- + regles = (AU_MOINS_UN('SystemGeometry', 'SpatialDiscretization'),), + + SystemGeometry = FACT(statut='f', max='**', + SystemGeometryName = SIMP(statut='o', typ=(systemGeometry, 'createObject'),), + Shape = FACT(statut ='o', max='**', + ShapeIdentifier = SIMP(statut='o', typ=(cadShape,'createObject'),max='**',), + ShapeNature = SIMP(statut='o', typ='TXM', into=['Typical Geometry', 'CAD']), + + blocShape = BLOC(condition = 'Shape_Nature == "Typical Geometry"', + Box = SIMP(statut='o', typ='TXM', into=['Cube', 'Sphere','Cylinder'] ), + blocCube = BLOC(condition = 'Box == "Cube"', + #Taille_Box_Englobante = SIMP(statut='o', typ='R', max=3, min =3) + # derait etre un Tuple(3) mais a faire apres la projection + #Size_Of_Bounding_Box = SIMP(statut='o', typ=Tuple(3), validators=VerifTypeTuple(('R','R','R'),),) + Size_Of_Bounding_Box = SIMP(statut='o', typ='R', max=3, min=3, ), + ), # fin blocCube + blocBoule = BLOC(condition = 'Box == "Sphere"', + Center = SIMP(statut='o', typ='R', max=3, min =3), + ),# fin b_Boule + blocCylinder = BLOC(condition = 'Box == "Cylinder"', + Heigth = SIMP(statut="o", typ='R', val_min=0.0, ang='Nanotube length [m]'), + ),# fin blocCylinder + blocBouleOuCylinder = BLOC(condition = 'Box == "Sphere" or Box == "Cylinder"', + Radius = SIMP(statut='o', typ='R', val_min=0.0, ang='radius length [m]') , + ),# fin blocBouleOuCylinder + ), # fin blocShape + blocCAO = creeBlocPourLesFichiers("Shape_Nature == 'CAD'",'Domain', ['txt','I-deas', 'Gmsh', 'top',],None), + ), # fin Shape + ),# SystemGeometry + + SpatialDiscretization = FACT(statut='f', max="**", + MeshId = SIMP(statut='o', typ=(meshIdentifier,'createObject')), + MeshName = SIMP(statut='o', typ='TXM'), + blocMeshFile = creeBlocPourLesFichiers("1 == 1",'Mesh',listeFormatGenerique,None), + GroupIdentifier = SIMP(statut='o', typ=(meshGroup,'createObject'),max='**',), + ),# SpatialDiscretization + + BoundaryConstraints = FACT(statut = 'f', + Motion = FACT(statut='f', + MotionNature = SIMP(statut='o', typ='TXM', into=['Fixed boudary', 'Translational motion', 'Rotational motion', 'Scaling']), + + blocTranslationalMotion = BLOC(condition = 'MotionNature == "Translational motion"', + TranslationVelocity = SIMP(statut='o', typ='R'), + boundaries = SIMP(statut='o', typ=spatialRegion,max='**', homo='SansOrdreNiDoublon' ), + ), + blocRotationalMotion = BLOC(condition = 'MotionNature == "Rotational motion"', + RotationRate = SIMP(statut='o', typ='R'), + boundaries = SIMP(statut='o', typ=spatialRegion,max='**', homo='SansOrdreNiDoublon' ), + ), + blocFixed = BLOC(condition = 'MotionNature == "Fixed boudary"', + boundaries = SIMP(statut='o', typ=spatialRegion,max='**', homo='SansOrdreNiDoublon'), + ), + ), +#PN decrire page 28 + Mapping = FACT(statut='f', + ), + ), # Boundary_Constraints +) # fin Geometric_Domain + +TEXTE_NEW_JDC = "\ +Velocity=scalar()\ +" diff --git a/Vimmp/cata_CSAndCPS_v12_test_driver_1.comm b/Vimmp/cata_CSAndCPS_v12_test_driver_1.comm new file mode 100644 index 00000000..61b84d0b --- /dev/null +++ b/Vimmp/cata_CSAndCPS_v12_test_driver_1.comm @@ -0,0 +1,186 @@ +Pressure=dynamicVariable() +Temperature=scalar() +Time1=simulatedTime() +CS_Num1=modeleNumDuCompo() +P1=userDiscrete() +CS_Num2=modeleNumDuCompo() +Group_From_Mesh1=meshGroup() +Group_From_Mesh2=meshGroup() +Average_Velocity=dynamicVariable() +K=scalar() +Epsilon=scalar() +outlet=meshGroup() +symmetry=meshGroup() +wall=meshGroup() +inlet1=meshGroup() +inlet2=meshGroup() +fluidfile=fileId() +CS_Num1__CS_Num2_Velocity=interaction() +CS_Num1__CS_Num2_Epsilon=interaction() +CS_Num1__CS_Num2_Pressure=interaction() +Time2=simulatedTime() +half_pipe_21_60=meshIdentifier() +half_pipe_15_40=meshIdentifier() +Interpolated_Pressure_File=fileId() +Interpolated_Epsilon_File=fileId() +interpolated_Velocity_File=fileId() + +EnvironementAspects(WorkflowName='Inria', + WorkingDirectory='/tmp/eric',); + +SpatialAspects(SpatialDiscretization=(_F(MeshId=half_pipe_21_60, + MeshName='half_pipe_generation_2inlet', + MeshFileFormat='Med', + MeshFileName=\ + '/home/eric/VIMMP/vimmptraining/app/fluide+mapper+particule/datafiles/half_pipe_21_60_2inlet.med', + GroupIdentifier=(inlet1,inlet2,outlet,symmetry,wall,Group_From_Mesh1,),), + _F(MeshId=half_pipe_15_40, + MeshName='half_pipe_generation_2inlet', + MeshFileFormat='Med', + MeshFileName=\ + '/home/eric/VIMMP/vimmptraining/app/fluide+mapper+particule/datafiles/half_pipe_15_40_2inlet.med', + GroupIdentifier=(inlet1,inlet2,outlet,symmetry,wall,Group_From_Mesh2,),),),); + +TemporalAspects(Simulated_Time_Laps=(_F(name=Time1, + initialTime=0.0, + finalTime=10.0, + timeDiscretization='Constant Time Step', + constantTimeStep=0.1,), + _F(name=Time2, + initialTime=10.0, + finalTime=15.0, + timeDiscretization='Constant Time Step', + constantTimeStep=0.01,),),); + +FluidComponent=Component(SystemType='Continuum system', + PhysicalDescription=_F(ComplexFluid=False, + FlowNature='Turbulent', + DensityInitialisation=_F(DensityValueType='Value', + Density=1.17862,), + ViscosityInitialisation=_F(ViscosityValueType='Value', + Viscosity=0.0183,), + TurbulenceForFlowDynamics=_F(TurbulenceModellingType='One-point moment', + RANSModel='Turbulent-Viscosity Model (TVM)', + TVMChoice='K-Epsilon',), + DynamicalVariables=_F(OriginOfDynamicalVariables='to be simulated', + PressureDefinition=_F(Pressure=Pressure, + SourceTerm=False,), + VelocityDefinition=_F(AverageVelocity=Average_Velocity, + SourceTerm=False,), + KDefinition=_F(Name=K, + SourceTerm=False,), + EpsilonDefinition=_F(Name=Epsilon, + SourceTerm=False,),), + Thermal=_F(ThermalEffects='Non thermal', + ReferenceTemperature=293.15,), + Scalars=_F(withScalars=False,),), + NumericalModel=_F(Identifier=CS_Num1, + SimulatedTimeLapse=Time1, + ChoiceOfApproach='Field-based', + NumericalMethod='FV', + Solver='Code_Saturne', + MeshIdentifiers=(half_pipe_21_60,),), + BoundaryConditions=_F(BoundaryCondition=(_F(TypeOfBoundaryCondition='Inlet', + ApplyOnGroups=(inlet1,inlet2,), + ApplyOnStateVariable=(Average_Velocity,), + FormulationOfBoundary='Dirichlet', + Consigne=\ + 'Choose between InletProfile,IntegratedValue,IntegratedVectorValue ', + IntegratedVectorValue=_F(U=1.0, + V=0.0, + W=0.0,),), + _F(TypeOfBoundaryCondition='Inlet', + ApplyOnGroups=(inlet1,inlet2,), + ApplyOnStateVariable=(K,), + FormulationOfBoundary='Dirichlet', + Consigne=\ + 'Choose between InletProfile,IntegratedValue,IntegratedVectorValue ', + IntegratedValue=0.0,), + _F(TypeOfBoundaryCondition='Wall', + ApplyOnGroups=(wall,), + VelocityAtBoundary=_F(SlipVelocity=0.0, + WallMotion=_F(U=1.0, + V=0.0, + W=0.0,),), + LevelOfDescription=_F(WallFunction='2-scale model (Log law)',),),),),); + +PartComponent=Component(SystemType='Classical particle system', + PhysicalDescription=_F(Particle=_F(ParticleNature='Discrete Particle', + DiscreteParticleName=P1, + TypeOfDiscreteParticle='Solid', + TypeOfSolid='Primary Particle', + Properties=_F(Geometry='Sphere', + ParticleRadius=1e-05, + Weight=_F(Density=1000.0,), + Mechanical='Rigid',), + ListOfInteractions=_F(BondedInteractions=_F(TypeOfBondedInteraction=\ + 'NoOne',), + UnbondedInteractions=_F(TypeOfUnbondedInteraction=\ + 'No',), + ExternalFieldInteraction=_F( + TypeOfInteractionWithAnExternalField='NoOne', + FieldAppliesOnAllSpecies=True,),),),), + NumericalModel=_F(Identifier=CS_Num2, + SimulatedTimeLapse=Time2, + ChoiceOfApproach='N-Particle_Method', + NumericalMethod='CFD_Discrete_N-Particle_Method', + Solver='Code_Saturne', + MeshIdentifiers=(half_pipe_15_40,),), + BoundaryConditions=_F(BoundaryCondition=_F(TypeOfBoundaryCondition='Wall', + ApplyOnGroups=(wall,), + VelocityAtBoundary=_F(SlipVelocity=0.0, + WallMotion=_F(U=0.0, + V=0.0, + W=0.0,),), + LevelOfDescription=_F(),),),); + +MedCouplingComponent=Interpolator(InterpolatorType='Med Coupling', + TargetMeshIdentifier=half_pipe_15_40, + InterpolationType='P0P0',); + +Interactions(IOAspects=_F(FileTransfer=(_F(TransferId=fluidfile, + FileFormat='Med', + FileName='results_Fluid_domain.med',), + _F(TransferId=interpolated_Velocity_File, + FileFormat='Med', + FileName='results_Fluid_Interpolated_Velocity.med',), + _F(TransferId=Interpolated_Epsilon_File, + FileFormat='Med', + FileName='results_Fluid_Interpolated_Epsilon.med',), + _F(TransferId=Interpolated_Pressure_File, + FileFormat='Med', + FileName='results_Fluid_Interpolated_Pressure.med',),),), + Interaction=(_F(InteractionName=CS_Num1__CS_Num2_Velocity, + From=CS_Num1, + To=CS_Num2, + InvolvedStateVariable=Average_Velocity, + InteractionConfiguration=_F(OutputId=fluidfile, + FieldName='Velocity', + CouplingMode='DataProcessing', + DataProcessingNode=_F(Tool=MedCouplingComponent, + OutputId=interpolated_Velocity_File, + FieldName='Velocity', + FieldNature='IntensiveMaximum',),),), + _F(InteractionName=CS_Num1__CS_Num2_Epsilon, + From=CS_Num1, + To=CS_Num2, + InvolvedStateVariable=Epsilon, + InteractionConfiguration=_F(OutputId=fluidfile, + FieldName='epsilon', + CouplingMode='DataProcessing', + DataProcessingNode=_F(Tool=MedCouplingComponent, + OutputId=Interpolated_Epsilon_File, + FieldName='epsilon', + FieldNature='IntensiveMaximum',),),), + _F(InteractionName=CS_Num1__CS_Num2_Pressure, + From=CS_Num1, + To=CS_Num2, + InvolvedStateVariable=Pressure, + InteractionConfiguration=_F(OutputId=fluidfile, + FieldName='Pressure', + CouplingMode='DataProcessing', + DataProcessingNode=_F(Tool=MedCouplingComponent, + OutputId=Interpolated_Pressure_File, + FieldName='Pressure', + FieldNature='IntensiveMaximum',),),),),); +#CHECKSUM:bf096ea4db8633808bfcdba60f251338 -:FIN CHECKSUM \ No newline at end of file diff --git a/Vimmp/cata_CSAndCPS_v16_test_driver_1.comm b/Vimmp/cata_CSAndCPS_v16_test_driver_1.comm new file mode 100644 index 00000000..be92c7c2 --- /dev/null +++ b/Vimmp/cata_CSAndCPS_v16_test_driver_1.comm @@ -0,0 +1,286 @@ +Pressure=dynamicVariable() +Temperature=scalar() +Time1=simulatedTime() +CS_Num1=modeleNumDuCompo() +CS_Num2=modeleNumDuCompo() +Group_From_Mesh1=meshGroup() +Group_From_Mesh2=meshGroup() +Average_Velocity=dynamicVariable() +Epsilon=scalar() +outlet=meshGroup() +symmetry=meshGroup() +wall=meshGroup() +inlet1=meshGroup() +inlet2=meshGroup() +fluidfile=fileId() +CS_Num1__CS_Num2_Velocity=interaction() +CS_Num1__CS_Num2_Epsilon=interaction() +CS_Num1__CS_Num2_Pressure=interaction() +Time2=simulatedTime() +half_pipe_21_60=meshIdentifier() +half_pipe_15_40=meshIdentifier() +Interpolated_Pressure_File=fileId() +Interpolated_Rij_File=fileId() +Interpolated_Epsilon_File=fileId() +interpolated_Velocity_File=fileId() +Position=dynamicVariable() +Velocity=dynamicVariable() +Rij=scalar() +Colloids=userDiscrete() +Diameter=dynamicVariable() +Mass=dynamicVariable() +WallReboundCondition=wallInteractionId() +FluidSeenVelocity=dynamicVariable() +CS_Num1__CS_Num2_Rij=interaction() + +EnvironementAspects(WorkflowName='Inria', + WorkingDirectory='/tmp',); + +SpatialAspects(SpatialDiscretization=(_F(MeshId=half_pipe_21_60, + MeshName='half_pipe_generation_2inlet', + MeshFileFormat='Med', + MeshFileName=\ + '/home/eric/VIMMP/vimmptraining/app/fluide+mapper+particule/datafiles/half_pipe_21_60_2inlet.med', + GroupIdentifier=(inlet1,inlet2,outlet,symmetry,wall,Group_From_Mesh1,),), + _F(MeshId=half_pipe_15_40, + MeshName='half_pipe_generation_2inlet', + MeshFileFormat='Med', + MeshFileName=\ + '/home/eric/VIMMP/vimmptraining/app/fluide+mapper+particule/datafiles/half_pipe_15_40_2inlet.med', + GroupIdentifier=(inlet1,inlet2,outlet,symmetry,wall,Group_From_Mesh2,),),),); + +TemporalAspects(Simulated_Time_Laps=(_F(name=Time1, + initialTime=0.0, + finalTime=10.0, + timeDiscretization='Constant Time Step', + constantTimeStep=0.1,), + _F(name=Time2, + initialTime=10.0, + finalTime=15.0, + timeDiscretization='Constant Time Step', + constantTimeStep=0.01,),),); + +FluidComponent=Component(SystemType='Continuum system', + PhysicalDescription=_F(ComplexFluid=False, + FlowNature='Turbulent', + DensityInitialisation=_F(DensityValueType='Value', + Density=1.17862,), + ViscosityInitialisation=_F(ViscosityValueType='Value', + Viscosity=0.0183,), + TurbulenceForFlowDynamics=_F(TurbulenceModellingType='One-point moment', + RANSModel='Reynolds Stress Model (RSM)', + RSMChoice='Rotta',), + DynamicalVariables=_F(VariablesSimulation=True, + PressureDefinition=_F(Pressure=Pressure, + Initialisation=_F(InitialisationType=\ + 'ByValue', + Value=0.0,), + SourceTerm=False,), + VelocityDefinition=_F(AverageVelocity=Average_Velocity, + Initialisation=_F(InitialisationType=\ + 'ByValue', + Value=0.0,), + SourceTerm=False,), + EpsilonDefinition=_F(Name=Epsilon, + Initialisation=_F(InitialisationType=\ + 'ByValue', + Value=1.3e-06,), + SourceTerm=False,), + RijDefinition=_F(Name=Rij, + Initialisation=_F(InitialisationType=\ + 'ByValue', + Value=0.0004,), + SourceTerm=False,),), + Thermal=_F(ThermalEffects='Non thermal', + ReferenceTemperature=293.15,), + Scalars=_F(withScalars=False,),), + NumericalModel=_F(Identifier=CS_Num1, + SimulatedTimeLapse=Time1, + ChoiceOfApproach='Field_based', + NumericalMethod='FV', + Solver='Code_Saturne', + MeshIdentifiers=(half_pipe_21_60,),), + BoundaryConditions=_F(BoundaryCondition=(_F(TypeOfBoundaryCondition='Inlet', + ApplyOnGroups=(inlet1,inlet2,), + ApplyOnStateVariable=(Average_Velocity,), + FormulationOfBoundary='Dirichlet', + Consigne=\ + 'Choose between InletProfile,IntegratedValue,IntegratedVectorValue ', + IntegratedVectorValue=_F(U=1.0, + V=0.0, + W=0.0,),), + _F(TypeOfBoundaryCondition='Outlet', + ApplyOnGroups=(outlet,),), + _F(TypeOfBoundaryCondition='Wall', + ApplyOnGroups=(wall,), + VelocityAtBoundary=_F(SlipVelocity=0.0, + WallMotion=_F(U=0.0, + V=0.0, + W=0.0,),), + LevelOfDescription=_F(WallFunction='2-scale model (Log law)',),), + _F(TypeOfBoundaryCondition='Symmetry', + ApplyOnGroups=(symmetry,), + ApplyOnStateVariable=(Pressure,Average_Velocity,Epsilon,Rij,),),),),); + +PartComponent=Component(SystemType='Classical particle system', + PhysicalDescription=_F(Particles=_F(ParticleNature='Discrete Particle', + ParticleName=Colloids, + InitialNumberOfParticles=0, + TypeOfDiscreteParticle='Solid', + PrimaryOrAggregate='Primary Particle', + Properties=_F(Geometry='Sphere', + ReferenceParticleRadius=1e-05, + Weight=_F(Density=1000.0,), + Mechanical='Rigid',),), + AmbiantMediaInteraction=_F(MomentumExchange=_F(withMomentumExchange=True, + MomentumFieldType=('Hydrodynamic',), + DefineForceOnParticle=_F( + TypeOfHydroDynamicForce=('Drag',), + FieldAppliesOnAllSpecies=True, + NatureOfFluidForce=_F( + NatureOfFlow='Turbulent', + TurbulenceModellingType='One-point moment', + RANSModel='Turbulent-Viscosity Model (TVM)', + TurbulenceModelDispersion='Langevin', + InitialisationType='ByInteraction', + Consigne='Create and choose suitable interaction', + InteractionNameForPressure=CS_Num1__CS_Num2_Pressure, + InteractionNameForVelocity=CS_Num1__CS_Num2_Velocity, + InteractionNameForEpsilon=CS_Num1__CS_Num2_Epsilon, + InteractionNameForRij=CS_Num1__CS_Num2_Rij,),),), + MassExchange=_F(withMassExchange=False,), + EnergyExchange=_F(withEnergyExchange=False,), + AmbientInducedProcesses=_F(withAmbientInducedProcesses=\ + False,), + AdditionalSamplingOfAmbientMedia=_F( + withAdditionalSamplingOfAmbientMedia=False,),), + ParticleParticleInteraction=_F(BondedInteractions=_F(BondedParticles=False,), + ActionsAtDistance=_F(withActionsAtDistance=False,), + ContactPhenomena=_F(withContactPhenomena=False,),), + ParticleWallInteraction=_F(withParticleWallInteraction=True, + ParticleWallInteractionId=WallReboundCondition, + TypeOfWall=_F(Dynamics='Fixed position', + LevelOfDescription='Continuum', + SurfaceTexture='Smooth',), + ActionsAtDistance=_F(withActionsAtDistance=False,), + ContactPhenomena=_F(withContactPhenomena=True, + LevelOfDescription='Macroscopic', + OutcomeOfContact='Elastic collision',),), + ConstraintsAndReducedStatisticalDescription=_F(Constraint=_F(TypeOfConstraint= + ('Time-marching_non-equilibrium', + ),),), + StateVector=_F(ParticleDiameter=_F(Diameter=Diameter, + ToSimulate=False,), + ParticleMass=_F(Mass=Mass, + ToSimulate=False,), + ParticlePosition=_F(Position=Position, + ToSimulate=True, + Initialisation=_F(InitialisationType='Not needed',),), + ParticleVelocity=_F(Velocity=Velocity, + ToSimulate=True, + Initialisation=_F(InitialisationType='Not needed', + SourceTerm=False,),), + FluidVelocitySeenByParticles=_F(FluidSeenVelocity=FluidSeenVelocity, + ToSimulate=True, + Initialisation=_F(InitialisationType=\ + 'Not needed', + SourceTerm=False,),),),), + NumericalModel=_F(Identifier=CS_Num2, + SimulatedTimeLapse=Time2, + ChoiceOfApproach='Particle_based', + NumericalMethod='CFD_Discrete_Particle_based', + Solver='Code_Saturne', + MeshIdentifiers=(half_pipe_15_40,),), + BoundaryConditions=_F(BoundaryCondition=(_F(TypeOfBoundaryCondition='Inlet', + ApplyOnGroups=(inlet2,), + TypeOfParticleInjected=Colloids, + NumberOfParticleInjected=100, + InjectionEveryNTimeSteps=1, + DiameterOfParticleInjected=1e-05, + MassOfParticleInjected=4.2e-12, + PositionOfParticleInjected=_F(InitialisationMode='ByFormula',), + ParticleVelocity=_F(InitialisationMode='ByFormula',), + FluidVelocitySeenByParticles=_F(InitialisationMode='ByFormula',),), + _F(TypeOfBoundaryCondition='Outlet', + ApplyOnGroups=(outlet,inlet1,), + ApplyOnAllsParticle=True,), + _F(TypeOfBoundaryCondition='Symmetry', + ApplyOnGroups=(symmetry,), + ApplyOnStateVariable= + + (Position,Velocity, + Diameter,Mass, + FluidSeenVelocity,), + ApplyOnAllsParticle=True,), + _F(TypeOfBoundaryCondition='Wall', + ApplyOnGroups=(wall,), + ApplyOnStateVariable=(Position,Velocity,FluidSeenVelocity,), + ChoiceOfParticleWallInteraction=WallReboundCondition, + ApplyOnAllsParticle=True,),),),); + +MedCouplingComponent=Interpolator(InterpolatorType='Med Coupling', + TargetMeshIdentifier=half_pipe_15_40, + InterpolationType='P0P0', + DefaultValueForUnmatchedMeshTargetEntity=-1.0,); + +Interactions(IOAspects=_F(FileTransfer=(_F(TransferId=fluidfile, + FileFormat='Med', + FileName='results_Fluid_domain.med',), + _F(TransferId=interpolated_Velocity_File, + FileFormat='Med', + FileName='results_Fluid_Interpolated_Velocity.med',), + _F(TransferId=Interpolated_Rij_File, + FileFormat='Med', + FileName='results_Fluid_Interpolated_Rij.med',), + _F(TransferId=Interpolated_Epsilon_File, + FileFormat='Med', + FileName='results_Fluid_Interpolated_Epsilon.med',), + _F(TransferId=Interpolated_Pressure_File, + FileFormat='Med', + FileName='results_Fluid_Interpolated_Pressure.med',),),), + Interaction=(_F(InteractionName=CS_Num1__CS_Num2_Velocity, + From=CS_Num1, + To=CS_Num2, + InvolvedStateVariable=Average_Velocity, + InteractionConfiguration=_F(OutputId=fluidfile, + FieldName='Velocity', + CouplingMode='DataProcessing', + DataProcessingNode=_F(Tool=MedCouplingComponent, + OutputId=interpolated_Velocity_File, + FieldName='Velocity', + FieldNature='IntensiveMaximum',),),), + _F(InteractionName=CS_Num1__CS_Num2_Epsilon, + From=CS_Num1, + To=CS_Num2, + InvolvedStateVariable=Epsilon, + InteractionConfiguration=_F(OutputId=fluidfile, + FieldName='epsilon', + CouplingMode='DataProcessing', + DataProcessingNode=_F(Tool=MedCouplingComponent, + OutputId=Interpolated_Epsilon_File, + FieldName='epsilon', + FieldNature='IntensiveMaximum',),),), + _F(InteractionName=CS_Num1__CS_Num2_Pressure, + From=CS_Num1, + To=CS_Num2, + InvolvedStateVariable=Pressure, + InteractionConfiguration=_F(OutputId=fluidfile, + FieldName='Pressure', + CouplingMode='DataProcessing', + DataProcessingNode=_F(Tool=MedCouplingComponent, + OutputId=Interpolated_Pressure_File, + FieldName='Pressure', + FieldNature='IntensiveMaximum',),),), + _F(InteractionName=CS_Num1__CS_Num2_Rij, + From=CS_Num1, + To=CS_Num2, + InvolvedStateVariable=Rij, + InteractionConfiguration=_F(OutputId=fluidfile, + FieldName='Rij', + CouplingMode='DataProcessing', + DataProcessingNode=_F(Tool=MedCouplingComponent, + OutputId=Interpolated_Rij_File, + FieldName='Rij', + FieldNature='IntensiveMaximum',),),),),); +#VERSION_CATALOGUE:VimmpV16:FIN VERSION_CATALOGUE +#CHECKSUM:af6dc896f894fc543700d58eb69f9c92 -:FIN CHECKSUM \ No newline at end of file -- 2.39.2