科学网

 找回密码
  注册

tag 标签: 文件夹

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

Inno setup 制作安装文件以编译FigTree为例
热度 1 zjlcas 2011-10-17 11:45
Inno setup 制作安装文件以编译FigTree为例 张金龙 (jinlongzhang01@gmail.com) Windows下安装文件的制作为软件的安装和卸载提供了方便。用户不再用担心可执行文件及动态连接库等保存在固定的文件夹中,只需要进行软件的安装和卸载,就可以将全部需要的可执行文件,以及程序运行所需要的文件创建和删除。这为程序管理提供了很大的方便。安装文件的制作有很多软件,如setup factory, Install shield wizard等等,但是对于小型软件, Inno setup,这样的小型安装文件制作工具就已经足够了。 Inno setup开始于1997年,是完全免费的,从稳定上和兼容性上,甚至超过了一些商业软件。 这里介绍一下如何用Inno setup创建一个setup文件。以FigTree为例。 FigTree是爱丁堡大学的Andrew Rambaut编写的绘制进化树的软件,用Java写成,可以在多种平台上运行。但是Andrew提供的Windows下的程序包实际上是一个包含exe文件和动态连接库的文件夹,使用起来不是特别方便,因此用Inno Setup建立一个Windows安装文件,便于对程序的管理和使用。 FigTree可以在 http://tree.bio.ed.ac.uk/software/figtree/ 下载。下载Windows下的zip程序包,解压缩。 下载Inno setup http://www.jrsoftware.org/isinfo.php 并安装。 创建一个新的Project,按照界面给出的提示,Inno setup会自动生成一个脚本。编译该脚本,即可生成所需的exe文件。一般来说,首先要指定exe文件。其次要给出程序所要包含的文件夹,该文件夹中包含运行该exe所需的动态连接库等。 还有就是创建ico文件,ico文件是Windows的图标,如果现有jpg或者png等其他格式的文件。可以在 http://iconverticons.com/转换成ico文件,作为该setup显示的图形。 了解以上信息,相信读者都能够编译出自己的Windows setup文件了。 FigTree v1.3.1.zip
个人分类: 科研笔记|8526 次阅读|1 个评论
linux下的软链接上带红圈斜杠,Qt version 4.6,GLIBCXX_3.4.9
piaoxue001 2011-9-4 11:16
在同一个文件夹下,不用写链接路径,竟然软链接上红圈斜杠消失了。真奇怪。 linux下无法读取软链接的文件的问题,这很可能是你所链接的文件,所以解决的办法可以是:对软链接所链接的原始文件使用:chmod 777 文件名 注:用chmod,用法为chmod 权限代码 文件名 权限代码主要为三位,每一位都遵循:r = 4 w = 2 x = 1 - = 0 其中r为读,w为写,x为执行,若有多个属性,则相加。如6表示有读写权限,7表示有读写执行权限。而三位的顺序是:所有者、组群、其他人 问题:Using bundled Qt version 4.6 because no system Qt version was found。 解决方法:系统没有安装Qt 4.6 以上版本,先安QT4 问题:/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found 解决方法: 终端输入: strings /usr/lib/libstdc++.so.6 | grep GLIBC 返回结果没有 `GLIBCXX_3.4.9', 接着输入: ls-l /usr/lib/libstdc++.so.6 lrwxrwxrwx 1 root root 28 05-03 13:15 /usr/lib/libstdc++.so.6 - /usr/lib/libstdc++.so.6.0.8 这里libstdc++.so.6是个软链接,它链接到libstdc++.so.6.0.8。而libstdc++.so.6.0.8没有 `GLIBCXX_3.4.9',这里需要 libstdc++.so.6.0.10。那么从网上下载libstdc++.so.6.0.10文件,放到/usr/lib64目录下。然后我们重新做libstdc++.so.6.软链接:1.删除libstdc++.so.6,终端输入:rm -rf /usr/lib/libstdc++.so.6,回车执行 2..重做libstdc++.so.6软链接,终端输入:ln -s /usr/lib64/libstdc++.so.6.0.10 /usr/lib64/libstdc++.so.6 或者ln -s libstdc++.so.6.0.10 libstdc++.so.6
个人分类: linux|4737 次阅读|0 个评论
Java调用dll之64bit篇
热度 1 xirongguo 2011-7-22 19:34
在64bit系统下调用32bit必须使用x86的JDK,这是由于64bit/32bit dll不能混合调用,而x64JDK默认调用64bit dll所致,具体原因如下: (转)64位应用程序的第一条规则是:你绝对不能把32位和64位代码混和在同一个应用程序内。如果你有一个64位应用程序,所有与这个应用程序相关的东西,包括DLL文件,必须是64位的。这就有一个有趣的挑战,因为有时候很多应用程序都依靠一个共同的DLL文件。幸运的是,Windows保持32位的DLL文件和64位的DLL文件处于隔离状态。   如果你查看一下在32位操作系统内的\Windows文件夹,你会发现两个子目录:一个名为SYSTEM,还有一个名为SYSTEM32。SYSTEM目录是Windows 3.x遗留下来的,用来保持Windows的对一些旧的应用程序的向下兼容性。一般说来,16位的DLL文件(以及其它的支持文件)被存放在\Windows\System文件夹里,32位DLL文件和不同支持文件被存放在\Windows\System32文件夹里。   32位版本的Windows保持16位和32位DLL文件的方式是非常简单的,但是64位版本的Windows保持64位和32位DLL文件的方式就不这么简单了。 理论上说,微软将要创建一个名为\Windows\System64的文件夹来用其存放64位DLL文件,但是取而代之的是,微软创建了一个新的名为SysWOW64的文件夹来存放32位的DLL文件。第一眼看起来,让人感觉这个文件夹应该存放64位应用程序的,但是注意,32位应用程序本来应该存放它们的DLL文件到\Windows\System32文件夹里面。   \Windows\System32文件夹在64位版本的Windows内仍然存在。但是微软使用这个文件夹做为64位DLL的仓库,而不是32位DLL文件的。我不清楚微软使用\Windows\System32文件夹来存放64位DLL的原因,但是我听说这么做是为了向下兼容性。   那么是不是所有32位应用程序该存放它们的DLL文件到\Windows\System32文件夹呢?这又让事情变得混乱。   如我之前所提及的,32位代码不能默认在64位版本的Windows内运行。为了运行32位的应用程序,Windows使用WOW64 emulator,来让这些应用程序还认为它们在32位版本的Windows内运行。   当你安装一个32位的应用程序,安装向导通过WOW64 emulato运行。32位和64位代码并不混和。一旦一个应用程序(包括一个安装向导)从WOW64 emulator开始运行,它必须接着在WOW64内继续运行。这意味着当你安装一个应用程序,安装向导并不知道这个程序被安装到64位版本的Windows内,并且和它运行在32位操作系统一样把DLL文件写到\Windows\System32文件夹里面。   当然,WOW64知道安装向导通过emulator来运行的32位应用程序。同时也知道64和32位代码不能混合在一起。所以,WOW64 emulator 给\Windows\SysWOW64创建一个别名。这意味着任何时候32位应用程序要写入到\Windows\System32文件夹或者从\Windows\SysWOW64文件夹读取,WOW64 emulator都能使其改道到\Windows\SysWOW64文件夹。   所有这些都意味着如果你需要手动操作\Windows\System32文件夹内的内容,你可能要非常的麻烦。我最近了解到一个管理员需要安装一些小的支持脚本到一个已经安装的应用程序,这个脚本的指导上说明这些脚本需要被存放到\Windows\System32文件夹。当然这些脚本的说明假定这个应用程序是在32位操作系统上运行的。   这些脚本没有引起系统崩溃。然而Windows给人幻想永远不用进行更新。当管理员运行应用程序,它将被改道到\Windows\SysWOW64文件夹。管理员知道他自己把这些脚本放到\Windows\System32文件夹并且能通过Windows浏览器看到这些脚本,但是不能指出为什么应用程序不能看到这些脚本。考虑到这个问题是和权限相关的,他花费了一些时间来研究这个,所以知道了关于64位版本的Windows保存DLL文件隔离的方法,所以他能够把这些脚本放到\Windows\SysWOW64文件夹。 附上一款好用的DLL依赖查看器:Dependence walker ( http://www.dependencywalker.com/ )
个人分类: 系统工程|11669 次阅读|3 个评论
[转载]【linux命令】移动一个文件夹下所有文件到另外一个目录
chnfirst 2011-6-15 13:34
mv /path/A/* /paht/B or find path/A -type f -exec mv {} /path/B \;
个人分类: Linux|1 次阅读|0 个评论
[转载]vasp计算氢分子的能量
robin7777 2011-6-7 14:35
氢气分子的解离能,也就是结合能,根据资料中给出的是约4.48eV。(G. Kresse J. Hafner, Surface Sci. 459 (2000) 287) 为此,首先要计算一个氢气分子的孤立能量,再减去两个孤立氢原子能量,将得到氢气分子的结合能。 先计算单个原子能量,选取PAW_PBE文件夹下的H下面的POTCAR 用到的其他输入文件如下: INCAR: SYSTEM = H atom in a box ISMEAR = 0 ! Gaussian smearing SIGMA = 0.01 ENCUT = 350.0 KPOINTS: Automatic mesh 0 Monkhorst Pack 1 1 1 0. 0. 0. POSCAR: H atom in a box 1.0 ! universal scaling parameters 7.0 0.0 0.0 ! lattice vector a(1) 0.0 8.0 0.0 ! lattice vector a(2) 0.0 0.0 9.0 ! lattice vector a(3) 1 ! number of atoms cart ! positions in cartesian coordinates 0 0 0 用上述文件计算得到 TOTEN(H) = +0.000854eV (H atom),用PAW_GGA得到类似结果。 然后计算氢分子能量,用类似的输入文件: INCAR: SYSTEM = H2 dimer in a box ISMEAR = 0 ! Gaussian smearing NSW = 5 ! 5 ionic steps IBRION = 2 ! use the conjugate gradient algorithm ENCUT = 350.0 POTIM = 0.1 KPOINTS: Automatic mesh 0 Monkhorst Pack 1 1 1 0. 0. 0. POSCAR: H2 molecule in a box 1.0 ! universal scaling parameters 8.0 0.0 0.0 ! lattice vector a(1) 0.0 8.0 0.0 ! lattice vector a(2) 0.0 0.0 8.0 ! lattice vector a(3) 2 ! number of atoms cart ! positions in cartesian coordinates 0 0 0 ! first atom 0 0 0.5 ! second atom 根据定义,E=-(TOTEN(H2)-2*TOTEN(H)) = 6.68eV,键长 = 0.75102 A。比文献中的结合能大了不少。 出现上述结果的原因是在计算单个H原子能量的时候没有指定基态为spin polarized state。为了得到正确的解离能,计算单个H原子能量的时候需要指定ISPIN=2。加上以上的tag后,TOTEN(H atom )=-1.10351 eV,用公式重新计算解离能: E_binding=-(TOTEN(H2)-2*TOTEN(H )) = 4.48eV 和文献吻合。另外,文献 中详细讨论了氢分子的解离能的计算方法和结果。
个人分类: 科研软件学习|19 次阅读|0 个评论
Tortoise SVN管理本地代码
热度 1 zjlcas 2011-5-30 03:51
Tortoise SVN管理本地代码 张金龙 jinlongzhang01@gmail.com 什么是Tortoise SVN? TortoiseSVN是一个windows下的文档版本管理的开源软件。用户每次对自己编写的代码进行修改,都会记录在SVN的数据库中。Tortoise SVN能够在设定好的文件夹上添加相应的“对号”,“问号”等标识,标识当前代码的编辑状态,特别是有没有在数据库中保存。 对于代码的修改,用户可以添加相应的标注。对于每一次修改,数据库都有详细的记录,从而保证所编写的文档可以回到作者保存过的任何一个版本。 这种版本控制策略在软件开发中是极为重要的,当然,在R程序包的开发中也十分重要。 用Tortoise SVN管理本地R代码的大体过程如下: 1 下载和安装Tortoise SVN软件,各项均选择默认即可,网址如下 http://tortoisesvn.net/downloads.html 2 在本地硬盘上创建一个新目录,作为数据库的保存文件夹。例如 D:/packages/phylotools 3 右键点击phylotools文件夹,Tortoise SVNCreate a repository here.完成后,打开phylotools文件夹,我们会发现其中新增了一些文件和文件夹。这是版本数据库相应的文件,我们暂且不管。 4 在本地硬盘上创建一个新文件夹,例如在C:/developing/. 点击鼠标右键,选择SVN Checkout。我们看到,developing文件夹下出现了一个phylotools空文件夹,该文件夹上有一个绿色的对号。我们发现,该文件夹是空的,绿色的对号表示,文件夹下的内容已经与数据库中的版本相同了。 5 在该文件夹下创建新文件,或者将之前编写好的代码拷贝到C:/developing/phylotools文件夹下。此时发现每个文件上都被加上了蓝色的问号,这表明这些文件还没有和数据库链接起来。此时我们回到上级目录,C:\packages, 右键点击phylotools文件夹,点击SVN Commit这样,该文件夹下的文件就全部导入数据,并且关联起来了。 6 之后对其中任何代码的修改,均可以提供Comments,并且隔一段时间进行保存。 这样以后恢复到以前的版本,就容易多了。而不用隔一段时间备份一下新文件。因为SVN已经帮你把修改信息全部存到数据库里了。
个人分类: 科研笔记|9702 次阅读|1 个评论
[转载]找回丢失的EndNote中的enl文件
热度 3 linallas 2011-5-26 15:57
至少三个网友最近遇到这样的问题,在使用 EndNote 文献管理软件过程中,enl 文件突然不见了。enl 文件是保存 EndNote 数据库信息的文件,这个文件丢失,让许多网友惊慌失措。其实不用担心, EndNote 文献管理软件的数据是保存在一个与 enl 相同目录下的一个 Data 文件夹内,只要 Data 文件夹还在,你的数据就还在,你可以轻松地恢复 enl 文件。你所需要做的就是按照下面的步骤来进行。 找到你的关联 enl 文件的 .Data 文件夹;比如 Paleo.enl 对应的文件夹是 Paleo.Data 通过左下角的开始(Start),所有程序(All Programs),附件(Accessories)来启动记事本(Notepad),然后点击文件,另存为,选择类型为’所有文件’ 保存一个空白的 Notepad 文件,扩展名为 .enl 。例如保存为 Paleo.enl 文件到 .Data 文件夹的所在位置 关闭记事本,启动 EndNote。 点击文件(File),打开(Open),打开图书馆(Open Library) 选择你刚才创建的 Paleo.enl 文件,你得文献应该都出现了。 转载原创文章请注明,转载自: 总而言之,统而言之
个人分类: 精彩转载|10014 次阅读|3 个评论
VC6.0将程序打包成一个可执行文件
热度 1 dishengbin 2011-5-4 08:40
想用VC6.0生成一个可执行的.exe文件,但方法自己总是记不住,每次都需要Google。 一般情况下在编译之后的Debug文件中文生成一个.exe文件,但是该文件双击后立马消失。 为了下次的使用方便,把其设置粘贴至此: (1)控制台应用程序 首先打开程序,工程—设置,左侧下拉列表选择Win32 Release,右侧"Microsoft 基础类",不选择,确定。 然后选择组建—批组建,去掉debug前面的钩,保留release前面钩,确定,完成。完成之后会在主目录下生成Release文件夹,里面的exe文件拷出来可以独立运行。 (2)MFC程序 首先打开程序,工程—设置,左侧下拉列表选择Win32 Release,右侧"Microsoft 基础类",选择“使用MFC作为静态链接库”,确定。 然后选择组建—批组建,去掉debug前面的钩,保留release前面钩,确定,完成。 完成之后会在主目录下生成Release文件夹,里面的exe文件拷出来可以独立运行。
2509 次阅读|0 个评论
把文件夹里所有的文件名称写入以txt文件
热度 1 zjzhang 2011-4-30 22:27
在Windows自带的命令提示符里,当前目录下,输入 dir/s/bwo.txt 即可。
个人分类: 计算机|3779 次阅读|1 个评论
将endnote output style导出的方法,及full citation推荐
wangshu 2011-4-22 17:45
将endnote output style导出的方法,及full citation推荐
自定义style后,另存后,文件不在endnote文件夹,而在“我的文档”的endnote下,在win7中为 C:\Users\lc\Documents\EndNote\Styles 这样就若重装系统,或换电脑后,将备份的style导入到我的文档或endnote安装文件夹下即可,仍然使用之前的style。 在论文写作时推荐用full citation,就是将作者、期刊,文章名全部写出,并不用简写,template为: Author, Journal, "Title", Year|, Volume|, Pages|. 这样,查看自己论文的参考文献时就很快知道是谁的哪篇作品了。 style文件见附 full by liuchao.rar 效果图如下:
26500 次阅读|0 个评论
[转载]ZZ科研体会-文献管理
热度 1 zhangdong 2011-4-8 19:49
文献管理 1.下载电子版文献时(caj,pdf,html),把文章题目粘贴为文件名。 注意,文件名不能有特殊符号,要把 \ / : * ? | 以及 换行符 删掉。 2.不同主题存入不同文件夹。文件夹的题目要简短,如:PD,LTP,PKC,NO。 3.看过的文献归入子文件夹,最起码要把有用的和没用的分开。 4.重要文献根据重要程度在文件名前加001,002,003编号,然后按名称排列图标,最重 要的文献就排在最前了。 5.复印或打印的文献,用打孔器(¥10-15)打孔,装入硬质文件夹(¥10-20/个)。
2244 次阅读|1 个评论
下载的MODIS产品文件夹解说
JiuBaiYi 2011-3-31 09:10
MCD12C1是搭载在Terra卫星上的Land Cover数据,是地表覆盖产品,分辨率5600m。是逐年的数据。文件夹10000~10002是这种产品。 MOD09GA是波段1~7的Surface Reflectance产品,分辨率为500/1000m,是逐日的数据。 MYD11A1 是空间分辨率1000m的逐日地表温度/比辐射率产品。
个人分类: 科研|6068 次阅读|0 个评论
找寻我的影子
热度 1 ywang69 2011-3-24 13:51
(那天接到黄香春的电话,他说春节后就没有来看我,特意打个电话问候一下。记得当年他从川大考过来我就发现他的文笔非常好,这点交大的学生应该学习。今天进入QQ邮箱,看到了他的QQ空间的文章,觉得写得挺好,特此贴出。祝他工作顺利,等他出差返回成都大家再聚。) 太阳谷·找寻我的影子 在人们眼中,沮丧和空白应该很难同太阳联系在一起,可偏偏我就给遇上了。应该是很久没有提笔写字的原因吧,当发现自己将以前的我丢失很久后,从案头找出纸笔,却不能将心头那一点星火描画,只能沮丧的涂鸦。无奈,胡乱翻出了收藏在很底层文件夹中梅毅先生的《历史的人性》,漫漫地在方格纸上抄录起来,不为别的,唯有静心。 这段时间,由于工作的原因,我穿越了云南边境小城维西傈僳族自治县,沿着险峻的金沙第一弯来到了太阳谷,一个让太阳最最亲睐的地方——甘孜州得荣县。他没有山青,也称不上水秀,但在明媚的太阳底下,群山耸立,四水环绕,可算得上静谧,还带点空灵。 得荣县城不大,步行仅半小时便可穿城而过。但就是如此一个小小的地方,却掌握了藏区非常重要的一样东西:开启藏区一百零八座神山的钥匙,它就在翁佳神山,佛教第一神山,这让这座接受太阳洗礼时间最长的城市,更是神秘已极。 有山,自然有水,山有过高,水有多长。太阳谷内,定曲河自雪山而来,蜿蜒山脚,再穿城而过,最后汇入金沙江。定曲河应该算是得荣县的母亲河了,县城沿河而建,通过刚架桥连接左右。站在桥上,听脚下河水嘻兮,看潺潺流水回环,思绪渐渐被流水的清澈和圆润洗得不着痕迹,空明通透。 也许是神游太久,不知不觉中天色渐暗,两岸料峭的春风正细细的裁剪摇摆的柳枝,渐渐地,已经绿了定曲的河水。远处,有一杆迎风舒展的白幡,据称,那是某个当地人水葬的地方,但我觉得称之为守望的英灵更符合现在的环境,她守望的正是渐渐热闹的太阳谷。 身后,天籁自远处刺破河风的屏障逆流而来,小城的人们,在饭后开始围成大圈唱歌跳舞了。也许是因为天空的澄明,或许还有河水的清澈,他们的声音显得那么干净,悠扬。大概是刚受过洗礼,我不自觉的随广场上的旋律,渐渐地舞动起来,很久没有这么轻盈,很久没有这么闲适。突然间,很想给那些牵挂我的、我牵挂的人们打电话,很想你们。
个人分类: 道听途说|4191 次阅读|1 个评论
[转载]VBA代码----多篇WORD文档的合并
pcabaqus 2011-3-16 17:14
Sub 加入文件名与加分页符的合并WORD文档() '''WORD中的VBA代码 '''把代码所在的doc文件也放到需要合并的文件夹中 ,所有需要合并的doc文件都放在这个文件夹中。 '''每合并一篇文章后插入一分页符,以区别不同的文章。 '''合并后生成新文档。 '''---by daode1212 2010-11-06 Dim fs As FileSearch, i As Long, n As Long On Error Resume Next Set fs = Application.FileSearch ml = ActiveDocument.Path '当前路径 bwj = ActiveDocument.Name '本DOC文档名 Documents.Add MsgBox ml "\" bwj With fs .NewSearch .LookIn = ml '在当前路径中搜索 .FileType = msoFileTypeWordDocuments '''只合并DOC文档 If .Execute 0 Then For i = 1 To .FoundFiles.Count If InStr(.FoundFiles.Item(i), "合并全部WORD文档") = 0 Then '先插入文件名: Selection.TypeText " ]]" '再插入一换行: Selection.TypeParagraph '再插入文件: Selection.InsertFile FileName:=.FoundFiles.Item(i) '最后插入分页符: Selection.InsertBreak Type:=wdPageBreak n = n + 1 MsgBox .FoundFiles.Item(i) " ---已经完成合并!" End If Next End If End With MsgBox "共合并了" n "篇文档" End Sub Sub 带文件对话框的doc文档批量合并工具() '''WORD中的VBA代码 '''把代码所在的doc文件也放到需要合并的文件夹中 ,所有需要合并的doc文件都放在这个文件夹中。 '''合并后内容在本文档中 ''' ---by daode1212 2010-11-06 Dim myDialog As FileDialog Dim i As Long Set myDialog = Application.FileDialog(msoFileDialogFilePicker) With myDialog .Title = "请选择要合并的文档(可以多选)" .AllowMultiSelect = True .Filters.Clear .Filters.Add "所有 WORD 文件", "*.doc", 1 End With On Error Resume Next If myDialog.Show -1 Then Exit Sub For i = 1 To myDialog.SelectedItems.Count Selection.InsertFile FileName:=myDialog.SelectedItems(i) MsgBox myDialog.SelectedItems(i) " ---已经成功合并进来!" Next MsgBox "已经完成合并数:" myDialog.SelectedItems.Count End Sub
个人分类: 杂七杂八|5635 次阅读|0 个评论
[转载]dos_split文件
guolingju 2011-2-28 09:44
dos_split文件 from: http://blog.sina.com.cn/s/blog_52e8ac6201009e13.html #ksh默认路径/bin/ksh,要求在dos_split文件所在文件夹下有DOSCAR和OUTCAR,vp文件默认路径为BIN/vp,vp所在文件夹要有POSCAR,OUTCAR #这个script很老的,没有考虑d态,你自己还得修改一下,主要类似下列的行: sed-n''$start','$end'p'$dosfile|awk'{printf"%12.8f%12.8f%12.8f%12.8f%12.8f%12.8f%12.8f\n",$1+(-1)*'$efermi',$2,-1*$3,$4,-1*$5,$6,-1*$7}'DOS$i 要把DOSCAR中的d态或f态都添加进来 #!/bin/ksh # Script to break the VASP DOSCAR file into segments for # each atomic site. # JMS NRL 5/0/02 # Modified to also align the Fermi level from the ground state # to E=0.0 # JMS NRL 6/19/02 # Executables reside here BIN=~/bin if ; then echo "Usage: split_dos" exit 2 fi # Script to split the DOSCAR file into the atomic # projections labeled by atom number dosfile=DOSCAR outfile=OUTCAR infile=INCAR # Token for splitting the files token=$(sed -n '6 p' $dosfile | awk '{print $1}') #sed语法为sed '{command}' #将DOSCAR的第6行第一个字段赋给token # Number of points nl=$(sed -n '6 p' $dosfile | awk '{print $3}') # Number of atoms natom=$(sed -n '1 p' $dosfile | awk '{print $1}') #natom是原子个数 # Get the Fermi level if the OUTCAR file is present, # else we set it to zero. #若OUTCAR存在,efermi为Fermi能,否则设为0 if ; then echo "The" $outfile "exists, we use it to get the Fermi level," echo "the RWIGS tag and the number of spins." efermi=$(grep "E-fermi" $outfile | tail -1 | awk '{print $3}') echo "Fermi level:" $efermi #efermi:Fermi能 nspin=$(grep "ISPIN" $outfile | tail -1 | awk '{print $3}') #nspin:ISPIN if ; then echo "Spin polarized calculation" else echo "Unpolarized calculation" fi #以上判断极化还是非极化计算 # 2.a # JMS 2/3/03 Modified to accept specification by LORBIT token. # lorbit=$(grep "LORBIT" $outfile | tail -1 | awk '{print $3}') #LORBIT值,0 simple, 1 ext, 2 COOP (PROOUT) if ; then #lorbit大于等于10 (算得的为1),"WARNING: not completely test for vasp.4.*",form=1 echo "LORBIT 10" echo "WARNING: not completely test for vasp.4.*" echo "Use at your own risk. Please check results for consistency." form=1 else # 2.a rwigs=$(grep "RWIGS" $outfile | tail -1 | awk '{print $3}' | sed 's/\.//g') #RWIGS,wigner-seitz radius(A) (算得的RWIGS = 2.840; RWIGS = 1.503 因为有两种原子,这里应该取了rwigs = 2.840) if ; then #rwigs=100,"RWIGS token not set",form=0 echo "RWIGS token not set" form=0 else #否则form=1 echo "RWIGS token set" form=1 fi # 2.a fi # 2.a else echo "The" $outfile "does not exist, we set the Fermi level to 0" echo "assume an unpolarized calculation, and RWIGS not set" form=0 nspin=1 efermi=0.0 fi # 注意!!If the outcar file is not present and you wish to set something by hand # you should do it here. Uncomment the tokens below and set them by hand. #efermi=2.255 #form= #nspin= # Get the atomic coordinates $BIN/vp | tmp.dat #注意!!文件vp路径:BIN/vp tail -$natom tmp.dat | awk '{printf "%s %12.8f %12.8f %12.8f \n", "#", $2, $3, $4}' | tmp.dat2 # Total is first DOS if ; then i=0 else i=0 fi #为何不管form是1还是0,i都是0呢? start=7 #从DOSCAR的第七行开始 end=$((start+nl-1)) #echo $start $end #调试时可显示start、end #exit 0 rm -f DOS0 if ; then #form=1 #i从0开始 while ; do #echo $i $start $end if ; then sed -n ''$i' p' tmp.dat2 | DOS$i fi if ; then #i大于等于0 # Atomic projected DOS if ; then #对自旋极化计算 sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5, $6, -1*$7}' DOS$i else #对非自旋极化计算 sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3, $4 }' DOS$i fi else #即i没有大于等于0 # Total DOS if ; then #对自旋极化计算 sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5 }' DOS$i else #对非自旋极化计算 sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3 }' DOS$i fi fi start=$((end+2)) end=$((start+nl-1)) i=$((i+1)) done else #form=0 while ; do #echo $i $start $end if ; then sed -n ''$i' p' tmp.dat2 | DOS$i fi if ; then #i大于等于0 # Atomic projected DOS if ; then #对自旋极化计算 sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5, $6, -1*$7}' DOS$i else #对非自旋极化计算 sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3, $4 }' DOS$i fi else #i没有大于等于0 # Total DOS if ; then #对自旋极化计算 sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5 }' DOS$i else #对非自旋极化计算 sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3 }' DOS$i fi fi start=$((end+2)) end=$((start+nl-1)) i=$((i+1)) done fi exit 0 #分割后的DOS0,DOS1…等文件的能量值是以费米能级作为能量参考零点。DOS0的第一列数据是能量值,单位为 eV;第二列数据是总态密度的值,单位 State/eV.unit cell;第三列数据是总态密度的积分值,也就是电子 数,单位为electrons。DOS1是第一个原子的分波态密度值,其中的第一列数据是能量值,单位为eV;第二、三、 四列数据分别对应于s、p、d态的分波态密度值,单位为State/eV.atom。其他的DOS文件与DOS1类似。
个人分类: 第一性原理(vasp)|7479 次阅读|0 个评论
给文件夹加备注的方法,终于为我所用了.
热度 1 entropy 2011-2-23 10:56
给文件夹加备注的方法,终于为我所用了.
一直在思考,却没有仔细研究过. 今天实在是受不了"自己用英文命名的文件夹,最后自己也搞不懂真实的意思"了. 毕竟不是母语,歧意太多了. 但W操作系统对中文经常感冒,怎么办呢. 开发文件(文件夹)的备注功能吧. 1 网络上查的.用记事本 InfoTip=输入你要添加的备注 保存成desktop.ini,保存在该文件夹下 HYL20110223用方面的方法没有成功啊. 2 网络:很老的玩意了,也不想多说了,直接给搂主写了一个批处理,保存为BAT文件双击执行看提示操作即可 @echo off echo.echo. set /p fn=输入文件夹路径或者用鼠标把文件夹左键按住拖到此窗口: echo.echo. set /p it=输入你对此文件夹的描述信息: attrib %fn%\desktop.ini -s -h del %fn%\desktop.ini echo %fn%\desktop.ini echo InfoTip=%it%%fn%\desktop.ini attrib %fn%\desktop.ini +h +s attrib %fn% +s 和上面的道理应该一样.这种方法不适用于经常的操作,尤其对我这种脑袋不好,时常要记录的人. 3 Tc的作法:选中文件或文件夹,Ctrl+Z,编辑注释. 分析: 文件,编辑的是文件的备注. 文件夹,实际上是在"该文件夹的同级目录下"建立一个descript.ion文件 ,在其中标明注释内容. 缺点: a我们复制文件夹时,不可能想着去复制这个.ion文件,而且它还是隐藏的.那么文件夹移动后这个注释就没有了. 4 Xplorer2的做法: 选中,Alt+Z,设置注释. 分析:文件,编辑的是文件的备注.文件夹,实际上是在"该文件夹内"建立一个desktop.ini文件 ,在其中标明注释内容. 优点: 避免了上述Tc的缺点,即放在文件夹内. 缺点: 文件备注,在Windows explorer下编辑后,Xplorer2不认中文. 文件夹备注,必须在Xplorer2下注释才能在Xplorer2下显示,Explorer下加的,同样的文件,在Xplorer2下显示不出来. 看来在用了近3年TC后我得回到Xplorer2了. 5 其它软件:用Folder Remarker给文件添加注释.这么简单的一个动作,还要专门一个软件,无视之. """""""""""""""""" 不错,方便是挺方便,但重装系统及对文件(夹)改名、复制、移动后是否会丢失注释呢?这的确是个应该关注的问题,不过你放心,软件的注释都保存在Folder Remarker安装目录的descript.fr2文件里,平时我们对加了注释的文件(夹)的改名、复制、移动等操作,Folder Remarker都能及时更新数据库,改名、复制、移动后的文件(夹)照样还是原来的注释,不会掉的。重装系统的问题,只要我们不将Folder Remarker与Windows安装在同一驱动器,重装系统后重新安装Folder Remarker到原来的目录,注释也不会丢。 """""""""""""""""""专门保存注释文件,人才 ,更无视了. 结论,没脑袋的Microsoft,为什么把Win9X这么好的"文件夹备注"功能给取消了呢? 惊喜,TC还真够意思啊,它居然认Xplorer2的备注。但不能直接编辑。 看来,要两个配合了。 实现这个功能,留下这两个资源管理器,况且都是王者,值了。 看到效果了吧, 这样做的好处就是,即使文件(夹)名字改了,描述不变,而且可以随时编辑,加入新的动态描述。 不用担心了吧。
10938 次阅读|1 个评论
文献资料的搜集方法
热度 1 bioysy 2011-1-18 14:27
昨天见孙学军老师有篇主题有点相似的文章,看了我也想写点,虽然前面写了篇博文和这个主题有点相关,我还是再继续,重新组织下,争取把自己用到或能想到的都展示下,和有类似爱好的朋友交流下. 1 建立一个相对完整的专业知识系统 获取资料好比是往粮仓中装粮食,先得把仓库准备好,得知道哪装玉米,哪装水稻.这里的意思是你需要获取哪方面的信息,这心理得有底,能对专业进行细分,这直接决定需要用什么文件夹.然后把同一类的东西放在一个文件夹里.这样分门别类以后查找才比较方便.当然只有资料足够多的时候才有整理的问题.只有在一定的知识系统的基础上,才能对接触到的资料进行分门别类.随着接触的资料越来越多,这个系统也会越来越成熟. 有个较好的知识系统,搜集资料的时候会更得心应手点.比如能够直接根据标题判断一篇文献的价值,并将其归入到合适的分类中,发现文章中的闪光点.很多文献你把其中最重要的部分记着就行了.每篇文章都仔细的看,真没那么多时间. 2 利用搜索工具获取文献信息 2.1 利用google搜索信息 这不用多将了,现在许多问题用搜索引擎都能搞定.比如一个专业术语的意思.这里推荐一个百科全书式的网站,是我用搜索引擎搜出来的,它对专业东西的解释还比较可以 http://en.wikipedia.org/wiki/Main_Page (the free encyclopedia that anyonecanedit .) 另外如果用google搜索全文pdf可以这样干: 文献名(或关键字) filetype:pdf,这样可以只检索pdf文件.同理,filetype:ppt可以用来搜幻灯片.有时看文献可能不太好懂,结合幻灯看看更容易懂了. 用搜索引擎可能还有另外一个好处,会有意外的收获,即搜索到,不是目标文献的,其它感兴趣的东西.这会增加点乐趣. 3 熟悉专业领域的主要期刊,并订制期刊内容email发送服务 这个应该是最重要的,这是信息来源主渠道.每个专业都有相应的期刊.比如我会关注Science,Nature,PLANT CELL,TAG等等.如果专业领域顶尖期刊的内容都比较熟悉,那知识面可能也是和国际接轨了,因为大家看的都是一样的东西.但这些期刊不是每篇文章都是对自己有用的或者自己感兴趣的,如果每期都去看,也是件比较烦人的事,而且要长期坚持下来也不容易. 这个问题人家已经为我们考虑了,不直接去期刊网站,看看自己的邮件总是可以的吧.这就涉及到期刊的一种服务:到一个期刊的网站后(比如plant cell:http://www.plantcell.org/plantpreview.shtml),这里会出现这样一个入口: Receive this page by email each issue: ,从这里进去后,把email地址输进去,每当期刊内容更新时就会给您发封,期刊内容的email.这样,注册一次终身受益. 几乎所有英文期刊都有这种服务,订阅的方式是类似的.有的网站可能需要注册,不过一注册可以订许多期刊的.比如TAG和Molecular Breeding都是SPRINGER的期刊,到这里注册下还能订许多其它期刊. 也不要订太多,太多了看不过来.当有新东西发来的时候,看看标题,从标题中把自己感兴趣的东西抓出来,再加上5的方法,会有很大的方便. 4 熟悉专业领域的综述期刊,并经常阅读 5 学习一款专业文献管理软件 6 专业文献的阅读方法 7 获取全文的旁门左道 ........................... 框架有了,东西慢慢添
4880 次阅读|2 个评论
GMT4.5.5安装--Ubuntu9.04
xinxiang 2011-1-17 21:02
今天在另一台机子上又安装了一次GMT4.5.5,凭回忆,记录一下它的安装过程,以备以后查用,这中间或许有记不请的,但是总体过程是没有错的。 首先,安装netcdf. 安装完成后,在主文件夹下编辑.bashrc(前面有点号),添加export NETCDFHOME刚才装过的netcdf的目录。保存后,使用source ~/.bashrc重新载入该文件。 现在安装GMT4.5.5。把所要安装的文件放到一个文件夹下。 1. GMT_src.tar.bz2 : Source code and Unix man pages only, no documentation 2. GMT_share.tar.bz2 : Shared run-time support files 3. GSHHS_coast.tar.bz2 : Standard resolution GSHHS coastline data 4. GMT_doc.tar.bz2 : All documentation, examples, and tutorial 5. GSHHS_full.tar.bz2 : Full resolution GSHHS coastline data 6. GSHHS_high.tar.bz2 : High resolution GSHHS coastline data 7. GMT_suppl.tar.bz2 : GMT Supplemental programs that link with GMT 8. GMT_triangle.tar.bz2 : Optional source code for Shewchuk's triangularization. 上面前三个是最基本的安装文件,必须要安装。使用tar xvf filename 命令把文件解压缩。注意文件夹的合并,后面的5个压缩文件也要和前三个文件合并,也就是要把文件放在该放的地方。 文件都解压缩好后,准备安装。假设安装目录为:~/GMT4.5.5。首先在安装目录下运行./configure,没有错误的情况下会产生 Makefile文件。然后使用make all语句。此时在我要安装的机子上出现错误,提示为:Xgrid_Panner.c: 4:31:error: X11/Xaw/Scrollbar.h:No such file or directory。在网上搜索后发现在很多软件的安装过程中都会出现类似的文件。前段时间在安装Seisan8.3的过程中也出现了这样类似的问题,当 时好像是缺少curse.h。这是一类缺少库文件的错误。在新立德中搜索X11后,安装了三个文件,分别是libghc-X11-dev, liggl1-mesa-swx11-dev, 和libxaw7-dev,安装完最后一个后再重新make all,此时没有错误提示,make成功。其实,看看安装过的文件可以看出是缺少libxaw7-dev,只是没有测试前两个的安装有没有起到作用。 按照Makefile中的提示, 继续make。make suppl 和make examples。前面的suppl是地震学中的一些命令,比如绘制震源球的命令psmeca就在里面,后面的当然就是例子了,总共有接近30个例子。最 后make insall-all,也可以按照Makefile的提示,有选择的单独make install 各个文件。 make install 后就安装就基本完成了。剩下的工作就是添加路径和测试是否安装成功。首先试试是否安装好了。在终端中,进入GMT下的bin文件夹可以看到各个命令文件。 敲入./pscoast,可以看到出现很多关于该命令如何使用的提示。现在添加路径。仍然是编辑.bashrc,在后面添加export PATH= ~/GMT4.5.5 /bin :$PATH。下划线部分是安装目录,安装目录各有不同。在终端中仍然是使用source ~/.bashrc重新载入该文件。 此时GMT4.5.5已经彻底安装成功!
个人分类: GMT|9127 次阅读|0 个评论
告别“虚拟”,拥抱现实(之二)
luocun 2010-7-21 13:08
赛博空间是虚拟的这一说法广泛流行,有个大的背景,就是在数字时代,人们如何谈论各种新生的数字事物。很多传统词汇,都被借用来描述新的现象,比如桌面、窗口、邮件、文件、文件夹等等。有人也许会觉得,这些老词汇的新用法只是隐喻而已。可是,电子邮件确确实实在很大程度上取代了传统邮件。如果电子邮件只是隐喻而已,这似乎是不太可能的。 再以文件夹为例,据说有位老先生,买了台电脑,手册上号称文件夹可以像传统文件夹那样使用,把文档拖到里面,它就会呆在那里。于是,写作完毕,老先生就把自己写好的文档,拖到文件夹里,然后直接拔掉电脑的插头。下次,再开机,却找不到上次写的文档,老先生奇怪:不是说放进文件夹就好了吗?诚然,老先生没搞懂此文件夹非彼文件夹也。两者名称固然相同,行为固然相似,类比却还是有限的。然而,要说数字文件夹是虚拟的,是不真实的,这恐怕也说不通;恐怕是在像老先生那样,按传统文件夹来看待甚至要求电子文件夹。 同样,数字摄影在今天已经是摄影的基本形态了。但是,没有人会认为摄影从胶片发展到数字是变得更虚拟,更不真实了。 再来看看虚拟作为技术术语的具体意思。比如虚拟内存,是指从应用程序(或者应用程序员)的角度看起来一台机器的主存可以很大,可用的地址空间可以大大超过实际内存容量,而当程序访问到不在内存中的数据时,相应存储页面的内容就会由操作系统来从外存(比如硬盘)调入内存。 虚存的实质,就是在操作系统(和硬件)的支持下,把一个内存加外存的系统协调起来,呈现给应用程序一个更大的内存系统。 这大体上是个以时间换空间、换简单性的做法。虚存妙就妙在,它完全是以真实的机制,通过操作系统的协调来实现的。 代价就是数据不再内存时,访问也许需要更多的时间来把数据从外存调入内存。 在概念上,重要的是分清应用程序的和操作系统这两个角度:应用程序那边看到的是一个相对比机器本身的内存加外存更为抽象、也更为简单的的内存似的(拟)系统,而这一抽象之所以成立,则是由于从操作系统的角度,它与硬件真真实实的协调配合。在这个意义上,虚拟的意思是:就好像内存那样,意思是差不离,而并非不真实。没有人会说,虚拟内存、虚拟硬盘是假的。虚拟机的情况类似,它们是用这些虚拟构件拼出来的。 我们还没有谈到的,是三维虚拟现实(virtual reality,VR)。(这里,三维和二维的区别,其实并不是实质性的。电脑桌面其实就是一个二维的虚拟现实,给人们提供与电脑上各种文档和程序的直观的组织和交互方式。恐怕没人会以为电脑桌面上的文件是存储在屏幕上的吧。)三维虚拟现实的特殊性在于,它可以把人沉浸式地放到一个三维环境之内。这样,大家就好像进入了一个真正的三维空间一样,在其中可以用他们和普通物体打交道的方式与虚拟物体交互。这样一来,这个虚拟环境里面的东西的真实性,就可疑了:一方面虚拟环境可以做得越来越逼真,而另一方面它却好像永远不可能成真。 然而,难道虚拟环境的目标真的是为了逼近现实吗?虚拟现实真的是越逼近真实越好吗?不对!想想飞行模拟器。 虚拟现实在这里的价值,正在于它与通常现实的不同:模拟器里飞机虚拟地坠毁时,飞行员可以毫发无损。如果在虚拟环境或者里面的东西真的要跟日常现实一样,那它还有什么用?有什么意思?难道真得要机毁人亡才是真实的吗? 所以,飞行模拟器也好,魔兽世界也好,它们完全可以自己是本真的环境,是人们生活、工作、学习的一部分。所以,不能说你在魔兽世界里的角色,(你通过)你的avatar的所作所为,是不真实的,是虚拟的,是非本真的。 这些其实跟传统的象棋围棋有很多相似之处。象棋、围棋都是游戏,也许还可以说是模拟战争的游戏,对于职业棋手而言,它们完全可以是值得为之献身的事业,是人生不可分割的一部分。同样,魔兽世界,也是世界的一部分,是数字化时代的人们游戏、娱乐、学习、交往的方式,它并不构成另一个世界,尤其不构成一个不真实的、非本真的世界。很多人可以不在里面玩,但这并不意味它是虚假的;正如,你可以不下象棋围棋,但这并不意味着棋的输赢是虚假的。 我想,这些恐怕是每个程序员、每个玩游戏的人,骨子里头都知道的:这些交互、娱乐、游戏、学习、甚至生活方式,确实是新的,但也仍然是这个世界的一部分。把计算机、互联网空间里面的现实,一网子视为虚拟,错得有点离谱,而实际上基本是保守派的做法,是在试图以传统的、大家习以为常的方式或事物为真、为正、为优,而以新的为假、为邪、为劣。 半年前的一天,女儿在企鹅俱乐部网站(http://clubpenguin.com/)上玩卡片柔术的游戏。她很开心地说,我很快就要拿到黑带了!我不想让她太沉迷,就说,你跆拳道不是也快拿黑带了吗?那才是真的黑带。她回答道:这是个真的企鹅世界啊。它还有个真的网站呢! 我想,对于他们这一代而言,把在线世界视为虚拟的,视为不真实,简直就是胡说八道。
个人分类: 计算哲学|2983 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-20 00:06

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部