范文为教学中作为模范的文章,也常常用来指写作的模板。常常用于文秘写作的参考,也可以作为演讲材料编写前的参考。写范文的时候需要注意什么呢?有哪些格式需要注意呢?读书是学习,摘抄是整理,写作是创造,下面是小编为大家整编的论文的格式模板【最新3篇】,欢迎借鉴,希望对大家有所帮助。
关键词 FreeMark;模板技术
中图分类号:TP393 文献标识码:A 文章编号:1671-7597(2013)21-0046-01
Java语言是互联网诞生以来,最伟大的语言之一,Java本就是为互联网而产生,如今在银行、电信、医疗各种领域都有普遍应用,Java应用如此普遍给人的印象更多是强大,而如今互联网有一种走向就是个性化,每个人都需要展示自我,此时Java还能否胜任呢?答案是肯定的,而FreeMarker是基于Java开发的一个优秀的模板引擎,可以很完美的解决这个问题。
1 FreeMarker的定义
FreeMarker是一个模版引擎,一个使用Java编写,基于模版生成文本输出的通用工具。FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序。FreeMarkerj具备一定的编成能力,但一般java程序准备要显示的数据,都由FreeMarker生成页面,并通过模版显示准备的数据。FreeMarker不是一个Web应用框架,而更适合作为一个Web应用框架的一个组件。
2 FreeMarker的特性
1)通用性。能够按需要生成各种类型的文本,容易于嵌入到产品中,插件式模板载入器。
2)强大的模板语言。语法结构强大并且简单,支持常用的指令:if、elseif、else include等;在模板中创建和改变变量,可以在任何地方使用复杂表达式来指定值;支持宏运算,可加载参数,并支持宏嵌套。
3)通用数据模型。为了是开发者不受技术细节的打扰,你可以使用抽象的方式表示对象,告之模板开发者使用。FreeMarker并不直接反射到Java对象中,Java对象通常通过插件式对象封装,以变量方式在模板中显示。
4)智能的国际化和本地化。数字格式本地化敏感,多种不同语言的相同模板。
3 FreeMarker的用途
在软件开发的实际应用过程中,FreeMarker的用途大致如下。
1)作为模板输出不同的表现层。当后台数据对象和模板推送到FreeMarker模板引擎后,将自动被解析输出相应的前端表现,无论模板是怎样的表现,FreeMarker都可以完美的将动态数据解析输出,如此一来,我们可以通过简单的参数控制,将同一套业务数据输出到不同的模板,从而形成个性化的展示。
2)输出特定规格的数据。在不同的应用系统之间如果需要进行数据交换,一般可以采用XML数据格式,而一旦数据接口的规格确定,则必须按照约定的格式输出,此时FreeMarker可以作为输出XML规范数据的工具。
3)用于代码自动生成。当前流行的Java开发框架,有很多种,例如Struts,Spring,Hibernate,Ibatis等,基于这些框架开发,目的自然是为了提升开发效率,但不同的模板基本上都按相同的模式做重复的工作,为了进一步提升开发的效率,可以考虑将开发基于自动生成的代码再编辑,其效率将得到大幅提升。基于这些开发框架一般都有多个层次,例如:action,impl,service,dao,vo,templates,config,可以采用不同的模板装载这些模板,并根据开发框架的规范定义编码规范,从而轻松实现代码自动生成的功能。
4 FreeMarker的配置
使用FreeMarker框架之前,需要做一些配置工作,主要做做下面两件事。
1)复制freemarker.jar(在FreeMarker压缩文件包的lib目录中)到Web应用程序的WEB-INF/lib目录下。
2)将下面的代码添加到Web应用程序的WEB-INF/web.xml文件中。
freemarker
freemarker.ext.servlet.FreemarkerServlet
…………………
freemarker
*.ftl
完成此配置后,即可通过freemarker解析所有。ftl模板文件了。
5 模板应用实例
我们采用最简单的实例来说明FreeMarker的应用。例如:在用户登录后,显示欢迎信息。
Action层的Java代码:
UserVo user = (UserVo)(“user”);
//将用户对象推送到前端
Request.setAttribute(“user”,user);
……
//根据用户所选模板加载不同的模板
return new ActionForward("/"+()+".tpl");
模板文件,有多个不同的模板文件,列举两个模板文件的代码:
Tpl-001.tpl代码如下:
${()},欢迎您!
Tpl-002.tpl代码如下:
Hello, ${()}.
经过FreeMarker解析后,两个不同的用户看到的页面将分别是:
张三,他选择的模板是Tpl-001.tpl,他看到的界面是:张三,欢迎您!
Mary,她选择的模板是Tpl-002.tpl,她看到的界面是:hello,Mary.
很显然,同一套后台程序,由于采用FreeMarker不同的模板,而呈现不同的结果,满足了个性化的需求。
5 结束语
FreeMarker目前仍然在不断完善中,其灵活的语法,强大的嵌套解析,国际标准化与本地化兼容,堪称比JSP更快的性能保障,以及不断提升的安全性,让FreeMarker具有更强大的生命力,在Java开发中将发挥更大的作用。
[1]曹扬。FreeMark模板技术在人事考试报名平台中的应用[J].信息与电脑(理论版),2012(07):118-119.
[2]周方。基于模板技术的网站内容管理系统的设计与实现[D].北京交通大学,2009.
关键词:板式热交换器;人字形板纹;雷诺数;传热系数;压降
前言
随着工程领域对板式换热器传热效率、节能、环保等要求的日益提高,板式换热器板片结构的流场分析对研发新型板式换热器至关重要。
关于板式换热器换热性能的研究一直比较活跃。徐志明等[1]采用流体力学软件对人字形板式换热器的双流道模型进行数值模拟,得到流体流动与换热的不均匀性,且总传热系数与流阻随流速的增大而增大。张晶等[2]通过建立板式换热器整板与局部的双流道计算模型,用CFD软件对不同波纹倾角、波纹截距进行模拟分析,得到最佳的波纹倾角在60°左右。上述研究对板式换热器的流动状态、传热和压降场做了比较完整的分析。
本文采用流体力学与传热学的相关知识分析了板式换热器的压降和传热情况,运用流体软件FLUENT对板式换热器的板纹双流道模型进行数值研究,结合理论计算所得数据进行对比分析,以期探明模拟数据的准确性,为板式换热器的优化设计提供理论依据。
1 板片结构
板式换热器板片的组成部分主要有:导流区域、换热区域、悬挂口、胶垫槽及角孔。板片作为板式换热器传热的核心元件,波纹设计的好坏决定着板式换热器技术水平的高低,流体的分配均匀性及湍动程度是影响传热的主要因素,两板片叠加会形成很多触点,触点越多,湍动越强烈,换热效果越好。而波纹的角度、宽度、间距直接影响触点的多少,间接的影响板片的传热性能。鉴于分析的复杂性,只考虑整板的一部分双流道板型进行研究,得到整体的换热趋势。
2 传热与压降的理论分析
2.1 传热系数的计算
流体在板式换热器的流动过程中,一般会存在流体传热热阻、板片热阻及污垢热阻。为了使分析简单化,采用双向流对板式换热器的传热性能进行研究。流体在双流道板片中流动时,会形成湍流,通常用下式来计算板式换热器沿整个流程的平均对流传热系数:
在流体粘度比较大的情况下,结合Sieder-Tate关联形式,用不均匀物性影响的修正系数得:
(2)
实际上,关联式中的各个参数都要通过实验来确定,不同的板式换热器的各项系数都不一样。
采用平板魅鹊睦砺郏此传热系统由热流体与板片之间的换热过程、板片的导热和冷流体与板片之间的换热过程组成。稳定时刻通过板片的热流量可以用热阻的形式表示,由于板片两侧的换热和导热面积相同,可写为如下形式:
(3)
一般情况下,涂层是很薄的,由于涂层的导热系数很小,从而导致热阻很大,通常不能忽略。为了研究的方便,不会考虑涂层热阻,假设忽略冷热流体侧的污垢层热阻,式(3)可变为:
(4)
其中冷热流体的换热系数不易确定,为了便于计算,普朗特等理论专家认为:流道厚度可分为流动边界层厚度和温度边界层厚度。根据傅里叶定律,在已知温度边界层厚度后,可求得在特征长度内的表面平均传热系数,结合努塞尔数的对流换热准则方程,可得:
(5)
(6)
(7)
2.2 压降的计算
在无法确定欧拉准则方程时,一般采用有摩擦系数的关联式来计算,板式换热器的压降通常有两部分组成:角孔压降和流道压降。即:
(8)
流道压降是流体从角孔进入到板间通道,而后又从另一角孔流出的过程,克服流道阻力形成压降。
(9)
角孔压降是流体流过角孔为克服阻力而形成的压降。
(10)
鉴于公式中摩擦系数很难确定,只能通过实验的方法加以分析。为了简化计算,模型中不存在角孔压差,故可省略,此公式可大体上计算出压差的变化趋势。
3 传热与压降的数值模拟[3-4]
鉴于板式换热器流体流动的复杂性,涉及湍流的边界层问题,要具体分析湍流的变化情况,网格的划分质量很关键。通常采用ICEM CFD网格划分软件来划分网格,用壁面函数法来估算出速度和第一层的网格高度,得到质量较好的网格。
数值模拟所得的表面传热系数变化曲线如图1所示,数值模拟所得的压降变化曲线见图2。
4 分析数据
为了更好的分析板式换热器的传热性能,结合经验数据,得到板式换热器水与水之间的传热系数在2900~4650之间,而后分析图1的模拟数据,发现模拟数据值在经验数据的范围内,可验证模拟数据的正确性。从图中的数据分析出,最佳的流动速度为0.5m/s。
流体在流入板片波纹流道的过程中,压能不断的转化为动能,部分动能在板波纹中产生漩涡而转化为内能耗散掉,在经过无数个板波纹后,压力不断的减小,在流过最后一个板波纹后,压差降到最低。模拟压降在试验数据的某一个范围内,验证压降数据的正确性。从图中的数据分析得到,在速度变化不大的情况下,压差的变化不是很明显,说明压差随速度有很大的关系。
5 结束语
(1)板式换热器的传热系数随流体流动速度的增大而增大,且速度达到0.5m/s以后,传热系数变化较为缓慢,可见流体速度为0.5m/s为最佳传热速度,换热性能最佳。(2)由于模拟的板式换热器板片的换热面积较小,在改变的速度变化不大的情况下,压差的变化不是很明显,而压差随冷水速度的增大而增大。(3)模拟所得的传热系数数据与经验理论所得的数据趋势基本吻合。
参考文献
[1]徐志明,王月明,张仲彬。板式换热器性能的数值模拟[J].动力工程学报,2011,31(3):198-202.
[2]张晶,文珏,赵力,等。基于计算流体力学数值模拟的板式换热器传热与流动分析及波纹参数优化[J].机械工程学报,2015,(12):137-145.
论文关键词:X文件,MFC技术,数据库,OLEDB技术
在DirectX中,为了使用实现建立好的模型文件,引入了一种新的模型文件格式――X文件。X文件中存储了三维模型的顶点坐标、面索引、颜色、法向量和纹理坐标等信息,并且可以包含用户自己定义的3D对象格式。
如何从X文件中读取信息和使用X文件是许多3D技术的关键。本文对X文件进行深入研究,探索图形参数的数据库管理方法。
1X文件简介
在X文件的开头一般有一个简单的文件信息;xof表明这是一个X文件;txt 表示其存储的文件格式是文本格式,其存储格式还可以是二进制方式,用binary来表示;0302是32位浮点数,如果是64位就可以用0604表示了。[1]
X文件是由模版驱动的,每个模板都以关键字template开头,然后是模板名。定义的模板都必须有一个GUID以识别该模板的唯一身份。然后是所需要定义的各种变量或者是需要的模板。模板是可以嵌套的,而且可以直接使用DirectX SDK中已经定义好的标准模板。模板一般分三种类型:封闭式模板MFC技术,开放式模板,限制式模板。
定义好模板之后再实例化,以存放实际数据。顺序是模板名,实例名(可以省略),实际数据。
2关键技术
2.1用MFC构造DirectX应用框架
用MFC类库进行开发DirectX SDK的应用程序,可以用VC++的ClassWizard方便地对Windows消息进行映射,增加了程序的可读性和代码的可重用性。
文档/视图结构可将数据处理和用户界面分开,使得模块划分更加合理,模块之间独立性强。作为一个统一的框架,文档/视图结构对MFC应用程序进行必要的控制,并具有相应的扩充性和灵活性。
2.2加载X文件
从X文件读取数据, 创建相应的Mesh是最常见的方式,也可以从可执行文件中的资源中读取X文件数据,有时需要从内存中读取X文件数据,可以调用D3DXLoadMeshFormX()函数:
HRESULT D3DXLoadMeshFromX(
LPCTSTR pFilename,
DWORD Options,
LPDIRECT3DDEVICE9 pD3DDevice,
LPD3DXBUFFER * ppAdjacency,
LPD3DXBUFFER * ppMaterials,
LPD3DXBUFFER * ppEffectInstances,
DWORD * pNumMaterials,
LPD3DXMESH * ppMesh);
Mesh中包含的物体模型是由顶点及顶点索引组成的,Mesh只是起把顶点,顶点索引,纹理属性,包装在一起的作用,简单资源的统一管理论文范文。[2]
执行D3DXLoadFromX函数完成X文件的加载后,Mesh的各种数据将存放在顶点缓冲区、顶点索引缓冲区、材质缓冲区、邻接顶点缓冲区、特效属性缓冲区和属性缓冲区中,其中,材质缓冲区、邻接顶点缓冲区以及特效属性缓冲区的地址由D3DXLoadMeshFromX 函数成功执行后直接返回MFC技术,其他的缓冲区地址可利用ID3DXMesh接口函数来获得。[3、4]
2.2建立数据表保存X文件中的mesh数据
顶点缓冲区是D3D保留的连续内存区,可能在内存中,可能在显卡内存中,需要进行Lock以后访问,然后对每个节点进行数据库操作。
长期Lock顶点缓冲区将对系统性能产生影响在此期间Mesh不能进行其他任何操作。因此需要把顶点缓冲区拷贝到自己申请的内存区,方法如下:
DWORD totalSize = vertexDesc.Size;
VOID* vertexesBuffer = malloc(total Size);
memcpy(vertexesBuffer, vertexes, totalSize);
此时,便可以对此内存区作各种操作和处理了,这种方法可以有效的避免内存锁定。
在Oracle数据库中创建表来保存MESH数据,结构如表1。
mesh 都是一系列的face(三角形)组成。每个三角形的顶点有3个序号决定,序号是顶点在Vertex中的序号,即 index 为 0、1、 2 的三角形,其顶点为 vertex中的第 0、 1、 2 个点。
表1数据库结构
表名
字段名
Mesh
id,name,width,height,depth
Vertex
i,x,y,z