Vasp菜鸟问问下面的问题怎么解决

Vasp菜鸟问问下面的问题怎么解决,第1张

hashtable返回的enum1 当然是空, 因为在class FieldManager2 中, 只是把fHashtable new了出来, 没有任何数据, 你加入的数据都在main方法中.

你不会是先运行FieldManager2, 认为这个时候数据[{身高}, {年龄}, {changdler}]都已经添加了进去, 然后运行PackageManager2, 查找的吧? 运行PackageManager2的时候FieldManager2里的数据已经没了, 因为你是重新启动虚拟机进行运行的,所以你的FieldManager2这样改一下就可以了.

(你的程序太乱, 我大概理解你是想做个类似数据库的一个存储介质, 但是这样的话, fHashtable是不应该声明为static的啊, 我大概帮你改一下, 让你能看到你想看的现象, 然后你有问题再提吧):

import java.util.Enumeration

import java.util.Hashtable

public class FieldManager2 {

private String FieldName, FieldType

static Hashtable<String, FieldManager2>fHashtable = new Hashtable<String, FieldManager2>()

static FieldManager2 fManager

static {

fManager = new FieldManager2()

fManager.add("身高", "student")

fManager.add("年龄", "student")

fManager.add("changdler", "student")

}

public FieldManager2() {

}

public FieldManager2(String FieldName, String FieldType) {

this.FieldName = FieldName

this.FieldType = FieldType

}

public static void main(String[] args) {

new FieldManager2().select("身高")

}

public void add(String name, String type) {

fManager = new FieldManager2(name, type)

fHashtable.put(name, fManager)

System.out.print(name)

System.out.println(" is added!too")

}

public boolean select(String name) {

Enumeration<FieldManager2>enum1 = fHashtable.elements()

while (enum1.hasMoreElements()) {

FieldManager2 fpManager = enum1.nextElement()

if (fpManager.FieldName.equals(name)) {

System.out.println("get you: " + name)

return true

}

}

return false

}

}

呵呵, 一般不用static来保存, 否则你要保存两套数据怎么办啊, 你应该将存储的单位和集合分来, 比如PackageManager就保存name和type, 同样FieldManager也是只管一个name, 然后在声明一个class FiledCollection , 里面维护一个私有的HashTable, 用这个类的实例来保存一个个的FiledManager实例, Packagemanager也一样, 这样程序整洁, 扩展性强.

在vasp官网下载。

VASP是维也纳大学Hafner小组开发的进行电子结构计算和量子力学-分子动力学模拟软件包。

它是材料模拟和计算物质科学研究中最流行的商用软件之一。VASP使用PAW方法或超软赝势,因此基组尺寸非常小,描述体材料一般需要每原子不超过100个平面波,大多数情况下甚至每原子50个平面波就能得到可靠结果。

问题太笼统,只能说各有优劣吧。

先来说说QE的优势,QE有三大优势:①开源免费,②功能齐全,③自带后处理程序。相比于VASP,QE版权节省下来的版权费用可以购买两台配置较好的计算机,用免费的软件和免费的机时可以做“无成本科研”;QE可以实现更多的计算,比如说电子能量损失谱、电子输运性质等等,都是VASP所不支持的;另外QE有自带的后处理程序包,不需要自己编写后处理代码,后处理比VASP要方便很多。

而VASP有两大优势:①计算效率较高,②赝势全。类似可变晶胞的结构优化,VASP比QE计算速度要快一些;近些年QE的赝势也在做完善,VASP赝势库较全这个优势正在不断减少。

所以说看个人的取舍吧,如果想省钱,用QE,如果想计算些基态性质又想效率高一些,那就选择VASP。

最后,如果你不会编程,不会Linux系统,不会编写计算输入文件,还想得到结构得到物性,可以尝试下MatCloud+这个软件,也是将QE图形化、简易化的平台,值得一试。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10061571.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存