基于网格的计算化学过程可视化系统及控制方法

文档序号:6353514阅读:759来源:国知局
专利名称:基于网格的计算化学过程可视化系统及控制方法
技术领域
本发明属于计算化学领域。是一种利用计算机技术,网格技术,可视化技术等实现网格上,计算化学过程动态监测的系统和方法。该系统能够实现对网格上的计算化学任务的动态检测。
背景技术
网格是一种分布式系统,但网格不同于传统的分布式系统。目前影响比较广泛的两个网格体系结构网格计算协议体系结构(Grid Protocol Architecture, GPA)和计算经济网格体系结构(GRACE)模型。网格方法与传统方法的区别主要包括开放性、通用性、 集中性、使用模式、标准化、平台性。网格主要具有以下优势,资源共享,消除资源孤岛网格能够提供资源共享,能消除信息孤岛、实现应用程序的互连互通。网格与计算机网络不同, 计算机网络实现的是一种硬件的连通,而网格能实现应用层面的连通。协同工作网格第二个特点是协同工作,很多网格结点可以共同处理一个项目。通用开放标准,非集中控制,非平凡服务质量这是Ian Foster最近提出的网格检验标准。网格是基于国际的开放技术标准,这跟以前很多行业、部门或者公司推出的软件产品不一样。动态功能,高度可扩展性 网格可以提供动态的服务,能够适应变化。同时网格并非限制性的,它实现了高度的可扩展性。计算化学(computational chemistry)是理论化学的一个分支。计算化学的主要目标是利用有效的数学近似以及电脑程序计算分子的性质(例如总能量,偶极矩,四极矩, 振动频率,反应活性等)并用以解释一些具体的化学问题。计算化学这个名词有时也用来表示计算机科学与化学的交叉学科。Java 3D是Java语言在三维图形领域的扩展,是一组应用编程接口(API)。利用 Java 3D提供的API,可以编写出基于网页的三维动画、各种计算机辅助教学软件和三维游戏等等。利用Java 3D编写的程序,只需要编程人员调用这些API进行编程,而客户端只需要使用标准的Java虚拟机就可以浏览,因此具有不需要安装插件的优点。因此,亟待开发出一种不同于现有的计算化学的软件(如GaussView, VMD, JMol 等)的基于网格的计算化学过程可视化系统,不但能够显示分子的三维结构,而且与计算化学的计算过程紧密联系,可以实时的观测到计算过程中的分子结构变化,查看分子结构信息。

发明内容
本发明的目的在于通过提供一种基于网格的计算化学过程可视化系统及控制方法,不但能够显示分子的三维结构,而且与计算化学的计算过程紧密联系。可以实时的观测到计算过程中的分子结构变化。通过网格模块来向网格提交作业,与网格进行交互。系统通过数据处理模块来实时的从网格获取数据,并进行解析,然后进行分子的三维可视化和以曲线的形式显示分子能量信息。
本发明是采用以下技术手段实现的基于网格的计算化学过程可视化系统,包括配置模块、能量曲线图模块、三维可视化视图模块、网格模块、数据处理模块以及模型数据模块;显示计算过程中分子的能量趋势的能量曲线图模块与三维可视化视图模块与信息通过图形化用户界面连接,其信息通过图形化用户界面进行显示;加载系统和用户的配置信息的配置模块与图形化用户界面连接; 模型数据模块分别与图形化用户界面和数据处理模块连接;数据处理模块与网格模块连接;三维可视化视图模块采用统一的接口构建三维分子,提供分子的平移,放大缩小,旋转; 网格模块向网格提交和查询作业信息,并获取网格中的数据信息;数据处理模块从网格获取和处理数据,抽取出相应的位置信息,获取本地保存的分子信息;模型数据模块从数据处理模块的信息获得解析,转换为可视化的数据源。前述的图形化用户界面包括用户登录界面、作业提交界面、管理操作界面和作业信息界面,同时通过这些界面接收用户输入。前述的三维可视化视图模块,采用场景图的方式,由内容分支和视图分支组成树形结构。前述的内容分支用于描述场景图所包含的所有图形对象以及针对这些对象的空间变换、光照、行为及背景信息。一个场景图包含多个三维分子,一个三维分子包含多个三维原子,以及多个原子之间的化学键。一种基于网格的计算化学过程可视化控制方法,包括网格作业管理、数据处理;还包括以下步骤选择查看,根据保存在本地文件系统中信息确定,是否是第一次查看此计算过程;如果是第一次查看,则直接从网格获取数据;如果不是第一次查看,则先从本地文件系统加载已经保存的计算过程的数据;判断上一次的查看中,计算过程是否已经完成,如果完成,则直接结束,不再从网格获取任何数据;否则,则从上一次断点的位置开始,继续从网格获取数据。本发明与现有技术相比,具有以下明显的优势和有益效果本发明借鉴了“断点续传”的思想。系统从网格获取数据的过程中,会同时将数据保存在本地。当用户在查看一个计算的过程中,由于意外的因素或者人为的故意终止了查看,系统会自动的保存当前已经查看的位置,在这里设置一个断点。当用户再一次查看此计算过程时,系统不需要重头开始从网格获取数据,只需要从断点的位置开始从网格获取数据即可。这样极大的缩短了系统的响应时间,也减轻了网格的负担。一个场景图包含多个三维分子,一个三维分子包含多个三维原子,以及很多原子之间的化学键。这样的设计便于扩展和修改。对于原子的修改或者分子的修改不会影响整个设计的其他部分。采用动态设置检测的时间间隔的方法,来从网格获取数据。首先,给定一个初始的时间间隔T = to,系统不断的检测数据产生的时间。(I)如果下一次网格数据获取时间间隔为n*T(n > I),则设置T = (n-factorl)木T0(2)如果下一次网格数据获取时间间隔任为T,说明T可能是仍然大于真实的时间间隔,则设置T = factor2^To
其中,factorl e
,factor2 e (0,I)。为了不对系统的实时性造成影响,初始时间间隔t0的设置要尽可能的小,factorl, factor2会随着计算化学作业特性的不同而有所不同。


图I是系统不意图2是网格模块意图3是系统模块连接示意图4是三维场景图5是分子分支图6是原子分支图I是化学键分支图8是观察者更新体系图。
具体实施方式
以下结合说明书附图对本发明加以进一步说明
请参阅图I为系统示意图。系统通过网格模块来向网格提交作业,与网格进行交
互。系统通过数据处理模块来实时的从网格获取数据,并进行解析,然后进行分子的可视化和以曲线的形式显示分子能量信息。请参阅图2为网格模块示意图。模型模块负责描述计算作业信息,作业信息被组织成一个包含作业标示、作业名等内容的数据结构。这些信息来源于用户提交作业时的描述以及网格运行作业时的反馈,通过封装的API从网格中获取。随着操作的进行,作业信息会实时自动更新。视图模块负责作业管理器状态的显示,包含用户登录界面、作业提交界面、管理操作界面和作业信息界面,同时通过这些界面接收用户输入。一旦模型模块的状态发生改变, 就会通知视图模块更新界面。用户关心作业状态信息也都会在视图模块得到不同方式的呈现。控制器负责将三维可视化视图模块接收的用户操作映射到模型模块,并触发模型模块改变状态。所有的用户操作,包括提交作业、更新作业列表、重启作业,杀死作业等都将经由控制器统一调度,再交由模型模块对数据进行相应的整合与修改。请参阅图3是系统模块连接示意图。为了使系统达到低耦合,高重用性的特点,同时为了屏蔽网格中间件的变化对系统造成的影响,这里采用了如下的设计。配置模块,用来加载系统和用户的配置信息,它允许用户根据自己的偏好进行配置,使系统更加的人性化。系统会默认的在用户的目录下的OPTView文件夹下创建 0PTView_User. properties文件,用来保存用户的配置信息。能量曲线图模块,动态的显示计算过程中分子的能量趋势,用户可以动态的查看计算过程中每一步的分子能量。三维可视化视图模块提供了一个统一的接口用来构建三维分子,并且提供了分子的平移,放大缩小,旋转等操作。图形化用户界面为用户提供了一个友好的可操作的界面,便于与系统的交互。网格模块,提供一个统一的网格访问的接口,通过此模块,可以登陆登出网格,查看网格作业队列信息,向网格提交作业,查询提交的作业状态信息,获取网格中的文件内容
坐寸ο数据处理模块一方面用来不断的从网格获取数据,处理数据,抽取出相应的位置信息;另一方面也可以获取本地保存的分子信息。模型数据模块为从网格获得解析,可视化的数据源。以下对本发明进行进一步说明在一个计算过程中,分子包含的原子种类和数量是不会变化的,不断变化的是每个原子的位置,以及原子之间的化学键。一般实现来说,当计算由一个阶段,到达另一个阶段时,我们可以完全重新构建整个三维分子,但这样会造成内存的大量浪费,而且如果分子体系很大的话,重新构建三维分子的速度会非常的缓慢。仔细研究便可以知道,由于分子包含的原子是不会变化的,变化的只是它的位置,因此我们完全可以将原子进行重用,只需要不断移动它在空间中的位置,并重构原子之间的化学键即可。基于此应用的特点,这里给出了针对此应用的可视化的设计。我们这里以最为常见的球棍模式为例进行阐述。这里进行如下的约定BG表示Java3D中的BranchGroup, TG表示Java3D中的 TransformGroup, TD 表不 Java3D 中的 Transform3D。图4中三维场景图,为了更好的重用,减少内存的使用将三维场景图和分子分支图进行了分离。三维场景图提供了通用性的背景设置,光线的设置,以及一些分子的行为设置等。对于不同的分子可视化,只需要替换相应的分子分支图即可,其中内容分支提供了这种替换分子分支图的能力。如图5所示分子分支图(Molecule3D),平移分支(MoleculeTG)用来提供分子的整体放大缩小,平移等功能。内容分支(MoleculeBG2)用来包含三维原子结构(Atom3D) 以及分子之间的化学键分支图(BondBG),它提供了化学键分支图的替换的能力。键分支 (BondBG)包含了分子之间的化学键。如图6所示原子分支图(Atom3D),平移分支(AtomTG)用来提供原子的平移,和放大缩小的行为。在计算的过程中原子的位置可能是不断变化的,平移分支(AtomTG)就允许你不断地进行对原子进行平移,而不需要在新的位置进行重新构建,这样就大大的提高了可视化的效率。在这里用一个球(sphere)来代表一个原子。如图7所示,这里用圆柱来模拟化学键。为了提高效率,减少内存的使用,化学键可以共享一个表面(Appearance)。通过以上的设计,随着计算的深入,分子中原子的位置和原子之间的化学键不断变化时,只需要不断的平移原子的位置,同时计算原子之间的化学键,并删除旧的化学键, 添加新的化学键即可。这样避免了对整个分子的重新构建,提高了可视化的效率,缩短了系统响应的时间。同时,当需要可视化不同的分子时,只需要删除旧的分子分支图,添加新的分子分支图即可,也不需要重新设置背景,光线,以及分子所具有的行为。关于数据处理模块,由于系统需要动态的检测网格中的计算,当计算进行到新的阶段时,需要动态的更新能量曲线图和三维分子图。一般来说,我们可以每隔一段时间定时的去查看从网格获取的数据是否有更新,如果发生更新则更新能量曲线图和三维分子图。但是,这就造成了在数据的两次更新之间,对数据的大量的查看是无效的。尤其是当查看的时间间隔很短时,会对系统的效率造成很大的影响。为了解决这个问题,这里采用了观察者的模式。如图8所示,首先模型数据会继承主题,曲线图和三维分子图会实现观察者接口, 并且注册为模型数据的观察者。当从网格获取的计算数据发生改变时,作为主题的模型数据会发生改变,这时候它会通知在该主题上注册的相应的观察者(曲线图和三维分子图) 进行更新。这样就达到了实时更新的效果,并且不会增加额外的系统负担。我们对采用上面提到的可视化方式,以及采用普通的分子重新构建的可视化方式,两步之间切换,可视化所需要的时间进行了测试。测试环境为JDK1. 6. 0,Java3Dl. 5. 2, Windows XP操作系统,Intel Pentium(R)D 2. 80GHz处理器,2G内存。具体的测试结果如表I所示表I两种可视化模式可视化速度对比
权利要求
1.一种基于网格的计算化学过程可视化系统,其特征在于包括配置模块、能量曲线图模块、三维可视化模块、网格模块、数据处理模块以及模型数据模块;显示计算过程中分子的能量趋势的能量曲线图模块与三维可视化模块与信息通过图形化用户界面连接,其信息通过图形化用户界面进行显示;加载系统和用户的配置信息的配置模块与图形化用户界面连接;模型数据模块分别与图形化用户界面和数据处理模块连接;数据处理模块与网格模块连接;所述的三维可视化模块采用统一的接口构建三维分子,提供分子的平移,放大缩小,旋转;所述的网格模块向网格提交和查询作业信息,并获取网格中的文件内容;所述的数据处理模块从网格获取和处理数据,抽取出相应的位置信息,获取本地保存的分子信息;所述的模型数据模块从数据处理模块的信息获得解析,转换为可视化的数据源。
2.根据权利要求I所述的基于网格的计算化学过程可视化系统,其特征在于图形化用户界面包括用户登录界面、作业提交界面、管理操作界面和作业信息界面,同时通过这些界面接收用户输入。
3.根据权利要求I所述的基于网格的计算化学过程可视化系统,其特征在于所述的 3D可视化模块,采用场景图的方式,由内容分支和视图分支组成树形结构。
4.根据权利要求3所述的基于网格的计算化学过程可视化系统,其特征在于所述的内容分支用于描述场景图所包含的所有图形对象以及针对这些对象的空间变换、光照、行为及背景信息。
5.根据权利要求4所述的基于网格的计算化学过程可视化系统,其特征在于一个场景图包含多个三维分子,一个三维分子包含多个三维原子,以及多个原子之间的化学键。
6.一种基于网格的计算化学过程可视化控制方法,包括网格作业管理、数据处理;其特征在于还包括以下步骤选择查看,根据保存在本地文件系统中信息确定,是否是第一次查看此计算过程;如果是第一次查看,则直接从网格获取数据;如果不是第一次查看,则先从本地文件系统加载已经保存的计算过程的数据;判断上一次的查看中,计算过程是否已经完成,如果完成,则直接结束,不再从网格获取任何数据;否则,则从上一次中断的位置开始,继续从网格获取数据。
全文摘要
一种基于网格的计算化学过程可视化系统及控制方法,包括配置模块、能量曲线图模块、三维可视化视图模块、网格模块、数据处理模块以及模型数据模块;能量曲线图模块与三维可视化视图模块与信息通过图形化用户界面连接,其信息通过图形化用户界面进行显示;加载系统和用户的配置信息的配置模块与图形化用户界面连接;模型数据模块分别与图形化用户界面和数据处理模块连接;数据处理模块与网格模块连接;该控制方法从网格获取数据的过程中,会同时将数据保存在本地。终止后,系统会自动的保存当前已经查看的位置,设置断点,系统不需要重头开始从网格获取数据,只需要从断点的位置开始从网格获取数据即可。这样极大的缩短了系统的响应时间,也减轻了网格的负担。
文档编号G06F19/00GK102609604SQ20111002395
公开日2012年7月25日 申请日期2011年1月21日 优先权日2011年1月21日
发明者刘倩, 张宝花, 迟学斌, 金钟, 陈建华 申请人:中国科学院计算机网络信息中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1