Salome HOME
update CoreFlows
[tools/solverlab.git] / CoreFlows / examples / Python / StationaryDiffusionEquation / StationaryDiffusionEquation_3DVF_RoomCooling_StructuredCubes.py
1 #!/usr/bin/env python
2 # -*-coding:utf-8 -*
3 #===============================================================================================================================
4 # Name        : Résolution VF de l'équation de Laplace 3D -\Delta T = 0 avec conditions aux limites de Dirichlet u non nulle (fenetre et radiateur)
5 # Authors     : Michaël Ndjinga, Sédrick Kameni Ngwamou
6 # Copyright   : CEA Saclay 2019
7 # Description : Utilisation de la méthode des volumes finis avec champs u discrétisés aux cellules d'un maillage de cubes
8 #               Conditions limites correspondant au refroidissement dû à une fenêtre et au chauffage dû à un radiateur
9 #                               Création et sauvegarde du champ résultant ainsi que du champ second membre en utilisant la librairie CDMATH
10 #================================================================================================================================
11
12 import CoreFlows as cf
13 import cdmath
14
15 def StationaryDiffusionEquation_3DVF_RoomCooling_StructuredCubes():
16         spaceDim = 3;
17         
18         #Chargement du maillage cartésien du domaine
19         #==============================================
20         my_mesh = cdmath.Mesh("../resources/RoomWithCubes480.med")
21         
22         print "Loaded Structured 3D mesh"
23         
24         #Conditions limites
25         Tmur=20
26         Tfenetre=0
27         Tradiateur=40
28
29         FEComputation=False
30         myProblem = cf.StationaryDiffusionEquation(spaceDim,FEComputation);
31         myProblem.setMesh(my_mesh);
32         
33         myProblem.setDirichletBoundaryCondition("Fenetre",Tfenetre)
34         myProblem.setDirichletBoundaryCondition("Radiateur_sous_fenetre",Tradiateur)
35         myProblem.setDirichletBoundaryCondition("Radiateur_devant",Tmur)
36         myProblem.setDirichletBoundaryCondition("Radiateur_droite",Tmur)
37         myProblem.setDirichletBoundaryCondition("Mur",Tmur)
38
39     # name of result file
40         fileName = "StationnaryDiffusion_3DVF_StructuredCubes";
41
42     # computation parameters
43         myProblem.setFileName(fileName);
44
45     # Run the computation
46         myProblem.initialize();
47         print("Running python "+ fileName );
48
49         ok = myProblem.solveStationaryProblem();
50         if (not ok):
51                 print( "Python simulation of " + fileName + "  failed ! " );
52                 pass
53         else:
54                 print( "Python simulation of " + fileName + "  successful ! " );
55                 pass
56
57         myProblem.terminate();
58         return ok
59
60 if __name__ == """__main__""":
61     StationaryDiffusionEquation_3DVF_RoomCooling_StructuredCubes()