节点离散温度场有限差分(有限容积)程序入门之三:2D温度场显式迭代计算(暂不考虑潜热)...

本文主要是介绍节点离散温度场有限差分(有限容积)程序入门之三:2D温度场显式迭代计算(暂不考虑潜热)...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先声明,我是一个菜鸟。一下文章中出现技术误导情况盖不负责

          我们首先分析度温场的求解吧,假设边界条件和初始条件经已设定。在贴码代之前,我们先谈谈这个类要需什么属性和行为:节点组数用于存储盘算变量、网格小大、度维定义、盘算函数,也就这么多了。如何盘算某节点的度温?盘算其东南西北方位相接节点对该节点的穿导热之和便可,读者这里可以虑考一下如何添加源相和对流换热进去。

package Soong.Solver
{public class TSolver{public  var Tlist:Vector.<Node>;private var xGridNum:uint = 1;//Number of Grid Allocated in X Directionprivate var yGridNum:uint = 1;//Number of Grid Allocated in X Directionpublic var dx:Number = 1;//Grid Size in X Directionpublic var dy:Number = 1;//Grid Size in Y Directionpublic var Sx:Number = 0;//Area of Heat Interface in X Directionpublic var Sy:Number = 0;//Area of Heat Interface in X Directionpublic var cellVol:Number = 0;//Volume of Control Volumepublic var Freezing:Boolean=false;//If Time to Freezepublic function TSolver(xGridNum:uint,yGridNum:uint,dx:Number,dy:Number){this.xGridNum = xGridNum;this.yGridNum = yGridNum;this.dx = dx;this.dy = dy;this.Sx = dy * 1;this.Sy = dx * 1;this.cellVol = dx * dy * 1;}public function Step(timeStep:Number):void{var col:uint = 0;var row:uint = 0;var node:Node = null;for (col = 2; col < xGridNum - 2; col++ ){for (row = 2; row < yGridNum-2; row++ ){node = Tlist[Index(col, row)] as Node;CalTnext(timeStep,node,col,row);node.T0=node.T;}}}public function CalTnext(timeStep:Number,node:Node,col:uint,row:uint):void{var conner:Boolean=false;var node_Adj:Node = null;var conductionHeat:Number = 0;//For Node on/in Connor or Edgevar SxFix:Number=1;//Area Fix Factor For Non-Interior Region in X Directionvar SyFix:Number=1;//Area Fix Factor For Non-Interior Region in Y Directionvar VolFix:Number=1;//Volume Fix Factor For Non-Interior Region in Y Directionif(((col==2)&&(row==2))||((col==2)&&(row==yGridNum-3))||((col==xGridNum-3)&&(row==2))||((col==xGridNum-3)&&(row==yGridNum-3))){SxFix=1/2.0;SyFix=1/2.0;conner=true;}if((col==2)||(col==xGridNum-3)){VolFix/=2;if(!conner){SyFix=1/2.0;}}if((row==2)||(row==yGridNum-3)){			VolFix/=2;if(!conner){SxFix=1/2.0;}}node_Adj = Tlist[Index(col+1, row)] as Node;conductionHeat+=node.eHeatExchangeFactor*(node_Adj.T0-node.T0)*Sx*SxFix;node_Adj = Tlist[Index(col-1, row)] as Node;conductionHeat+=node.wHeatExchangeFactor*(node_Adj.T0-node.T0)*Sx*SxFix;node_Adj = Tlist[Index(col, row+1)] as Node;conductionHeat+=node.nHeatExchangeFactor*(node_Adj.T0-node.T0)*Sy*SyFix;node_Adj = Tlist[Index(col, row - 1)] as Node;conductionHeat+=node.sHeatExchangeFactor*(node_Adj.T0-node.T0)*Sy*SyFix;var dT:Number = conductionHeat * timeStep;dT /= cellVol * VolFix * node.Rho * node.Cp;node.T = node.T0 + dT;}public function LatentHeatRelease(node:Node):void{}//Apply the Boundary Conditionpublic function ApplyBC():void{}private function Index(col:uint=0,row:uint=0):uint{return row * xGridNum + col;}}
}
每日一道理
因为自信,在呀呀学语时,我靠着纤嫩的双腿,迈出人生的第一步;因为自信,我一次次将第一名的奖状高高举起;因为自信,我毫不吝惜地剪掉飘逸的长发,在运动场上展现风采……感谢自信,它给了我一双翅膀,让我在电闪雷鸣中去飞翔,在风雨中去搏击人生!

    
        简略吧,要需意注的是不同置位的节点其传热面积以及控制体体积不尽相同,要需Fix一下。这里给出开端的盘算结果(代迭100s的结果)。前目笔者没有贴出全部码代,这时按照笔者供提的序程是法无运行的,读者想一想,还点缺什么?

    

      将其称对到得整个界面:

    

    有点子样了,这还不是终究的盘算结果,凝结潜热还没有虑考进去,后续会补上。另外,我们没有离散偏微分方程,但是我们的方法和离散偏微分方程归同途殊的。或许读者可以解理无限差分和无限容积的连续与区别了。

文章结束给大家分享下程序员的一些笑话语录: 一个合格的程序员是不会写出 诸如 “摧毁地球” 这样的程序的,他们会写一个函数叫 “摧毁行星”而把地球当一个参数传进去。

转载于:https://www.cnblogs.com/jiangu66/archive/2013/04/26/3045541.html

这篇关于节点离散温度场有限差分(有限容积)程序入门之三:2D温度场显式迭代计算(暂不考虑潜热)...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/301947

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

poj 3159 (spfa差分约束最短路) poj 1201

poj 3159: 题意: 每次给出b比a多不多于c个糖果,求n最多比1多多少个糖果。 解析: 差分约束。 这个博客讲差分约束讲的比较好: http://www.cnblogs.com/void/archive/2011/08/26/2153928.html 套个spfa。 代码: #include <iostream>#include <cstdio>#i

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

poj 1113 凸包+简单几何计算

题意: 给N个平面上的点,现在要在离点外L米处建城墙,使得城墙把所有点都包含进去且城墙的长度最短。 解析: 韬哥出的某次训练赛上A出的第一道计算几何,算是大水题吧。 用convexhull算法把凸包求出来,然后加加减减就A了。 计算见下图: 好久没玩画图了啊好开心。 代码: #include <iostream>#include <cstdio>#inclu

uva 1342 欧拉定理(计算几何模板)

题意: 给几个点,把这几个点用直线连起来,求这些直线把平面分成了几个。 解析: 欧拉定理: 顶点数 + 面数 - 边数= 2。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#inc

uva 11178 计算集合模板题

题意: 求三角形行三个角三等分点射线交出的内三角形坐标。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多