J'ai essayé une analyse de transfert de chaleur non stationnaire unidimensionnelle en utilisant le heatrapy de open source. Récemment, je fais une relation passionnée au travail.
pip install heatrapy
Vous pouvez faire ce qui suit: Vous pouvez faire beaucoup de choses!
--Ta, isolations: conditions aux limites --Q: transfert de chaleur (possible à n'importe quelle position) --h: condition de contact (possible à n'importe quelle position) --Q0: transfert de chaleur en fonction de la température (possible à n'importe quelle position)
Les théoriques sont résumés dans les articles suivants. Je vous remercie https://www.sciencedirect.com/science/article/pii/S2352711018301298#!
Un exemple dans Documentation.
Les données matérielles se trouvent dans le dossier d'installation / heatrapy / database. Si vous l'ajoutez ici, vous pouvez ajouter des matériaux. Chaque nom de fichier dans le dossier de matériaux signifie les valeurs de propriétés physiques suivantes, et les valeurs peuvent dépendre de la température.
--cp: Chaleur spécifique [J / kg ℃] --k: conductivité thermique [W / m K] --rho: densité [kg / m3]
Même si j'essaie de le déplacer en tant que document, cela ne fonctionne pas. .. .. (Je ne pense pas que ce soit maintenu) J'ai donc regardé le code source et l'ai corrigé.
Lorsque vous exécutez le code ci-dessous, le résultat de l'analyse sera affiché dans example.txt. write_interval est une spécification du nombre de secondes de sortie du résultat. Il existe quatre solveurs disponibles et il semble que vous puissiez les sélectionner en conséquence.
run.py
import heatrapy as ht
example = ht.single_object(amb_temperature=293, materials=('Gd',), borders=(1,11),materials_order=(0,),
dx=0.05, dt=1., file_name='example.txt',boundaries=(300,0), Q=[], Q0=[],initial_state=False)
example.compute(timeInterval=30000, write_interval=300, solver='implicit_k(x)')
La documentation dit de voir les résultats dans physplotlib, mais nous utiliserons des pandas pour voir les résultats.
read_data.py
df = pd.read_csv("example.txt")
Lisez le fichier de sortie ci-dessus. Comme indiqué ci-dessous, la température à chaque nœud est sortie sous forme d'historique temporel.
Regardons le graphique
graph.py
df = pd.read_csv("example.txt")
df=df.drop("heat[1](W)",axis=1)
df=df.drop("heat[-2](J)",axis=1)
df = df.set_index("time(s)")
df.plot(figsize=(15,8))
Le graphe de l'analyse thermique non stationnaire unidimensionnelle!
C'est une excellente bibliothèque. Comme vous pouvez le voir dans l'article, l'analyse thermique et les programmes orientés objet vont très bien ensemble! Si une telle bibliothèque s'agrandit, l'industrie manufacturière n'aura pas à «réinventer les roues», mais c'est encore une histoire.