25

"How to master Fortran programing with minimal effort?" The concept of "mastering" a programming language is a bit subjective, and people typically don't "master" a language with "minimal effort". However as a Fortran programmer myself, there's two strategies I can recommend: (1) Tutorials: As with any programming ...


18

Fortran is a language that evolved strongly and a programmer just maintain very old legacy codes will have very different needs from a programmer maintaining codes written in Fortran 95 and different needs will have a programmer who wants to employ modern techniques and develop new program that use Fortran 2003, 2008 and 2018 (and future revisions). The ...


17

"Would it be feasible to create my own small clusters from 2 or 3 laptops that I have and somehow get them to run in parallel so I will be able to execute DFT codes more efficiently." It's certainly possible but it would not help much at all. If you are considering to put together three laptops (each with, say, 4 cores) to get a 12-core "...


15

This is an important question, and I will do my best to answer it in a way that adds to the nice suggestions made in earlier answers. In short, the answer is yes, but only with the help of some other models and approaches. In this response, I will focus on the conventional (computational) approach to this question, using lattice models and Monte Carlo ...


15

Computational power is a relatively vague term, and can include at least three dimensions: computational time, memory consumption, and disk usage. Under this definition, it's trivial to find out how much computational power you have. The following discusses how to find out how much computational power you need. Computational time The computational time of ...


14

SLURM I'll provide you with a general script to run QE on your HPC. This is with the assumption that the HPC facility is using SLURM as your workload manager and also with the assumption that you have the essential modules installed like openmpi (for parallel execution of the QE code) and intel compiler (in the example given below): #!/bin/bash #SBATCH --...


13

I am wondering if there is any computational method to know the curie temperature of magnetic materials? Yes, there is!. Simulations to determine Curie Temperature are usually done via Monte-Carlo methods, with the assumptions taken from the Heisenberg model. I haven't done any Curie Temperature Simulations using DFT but it is possible as this answer on ...


13

I've done that professionally. In the early '90's, I worked at IBM and spent some time porting FORTRAN "codes" to work on the new RISC SYSTEM / 6000. I found that FORTRAN was such a simple language that it could be worked with without "knowing" it, per se. I obtained a FORTRAN 77 text book, which was rather small and slim, about the same ...


12

First, make sure that the structure is correct. Second, make sure that the structure is relaxed. Third, make sure that all the parameters in your input card are reasonable and the used pseudopotentials are matched with your structure. Fourth, make sure that the self-consistent loop is complete, namely, the convergence threshold of the electronic step is ...


12

The answers provided by others are excellent and rather comprehensive. I would only introduce a few other resources that could help you down the road to find answers to problems more efficiently. Several Fortran communities can be extremely helpful in learning optimization and performance tips or simply to seek help from experts: The Intel Fortran forum has ...


12

For the "why" you should use the tetrahedron method when computing the density of states, check out this paper on exactly that topic! In short, other approaches (e.g. Gaussian smearing) will occasionally obscure (and artificially introduce) some features of the density of states. As for how the method works, quoting from the paper directly about ...


12

LoadLeveler I would recommend to save the following shell script file with a name like submission.sh: #! /bin/ksh # @ job_name = Calculation_for_Parmeet # @ job_type=MPICH # @ error = job.err.$(jobid) # @ node = 2 # @ tasks_per_node = 20 # @ wall_clock_limit = 23:58:00 # @ notification = complete # @ notify_user = nike@hpqc.org # @ queue module load qe/6....


10

(I'll answer with crystalline solids in mind.) You could study the material's magnetic and non-magnetic phases and construct their Gibbs free energy (G) vs temperature (T) profiles. \begin{equation} G\: =\: H_{T=0}\: +\: H_{T>0}\: +\: \text{zero point energy}\: -\: T\cdot S, \tag{1} \end{equation} Where H is enthalpy, and S is entropy (any kind). Based on ...


10

This is a very general answer, but let me point you in the right direction at least. If you are looking at a molecular system such as C6H6, you will likely want to use a non-periodic code such as Gaussian. This page describes many different methods of charge analysis and you can use this information to calculate charge transfer complexes and local charges on ...


10

Extending the answer by Nike Dattani separately rather than an addition in the text: (2) Practicing, bis: After gaining some familiarity with the language, join a "drill site" like codewars.com where you may train yourself (dojo-like) according to difficulty, or subject. In addition to "you passed the test", there is a community-based ...


9

Since QE is a planewave based code and we are talking about cells, its important to realize its periodic so its always interacting with itself to some degree. The only way to check if its sufficiently not interacting is to increase the cell size and see if your property changes. If it does, repeat again until its converged just like kpoints or energy ...


9

I would not recommend applying external hydrostatic pressure by changing the lattice parameter by hand. This is because fixing the lattice parameters by hand may lead to the incorrect structure. For example, the system may have a pressure-induced structural phase transition that may change it from cubic to tetragonal, and by fixing the lattice parameters by ...


9

If your main limitation is the memory you can make use of old used server machines (approx. 6-10 years old). These machines usually utilize cheap DDR3 server memory chips and support quite impressive capacities (in the range of hundreds of GBs). On the other hand CPU speed is not that impressive even though they are usually dual processor and sport from 8 to ...


9

If you already know Python, perhaps you could try to convert Python code to Fortran code. That is probably the fastest way to get to know the language. Unless you go from one paradigm to another programming principals are mostly the same and it is syntax that differentiates one language from another. If you go through books and tutorials then you will ...


9

Comparing what each software is capable off, is relative easy: open both webpages and look for feature pages. From SIESTA project page: Total and partial energies. Atomic forces. Stress tensor. Electric dipole moment. Atomic, orbital and bond populations (Mulliken). Electron density. Geometry relaxation, fixed or variable cell. Constant-temperature ...


9

You don't give any real details on the system, but I can make a guess from your scaling that either the code doesn't properly support openmp (which is unlikely) or your system is way too small to see a benefit. I suspect if you use a bigger system (that can't finish in about 10 seconds on a single core) you will see an improvement. Also keep in mind a ...


8

Complementing the answer by @Tristan, in this question you will find the several methods used to determine the atomic charges. Also, you can use Gaussian to calculate/export the wavefunction and them use Multiwfn package to estimate the system charges using several approaches: Population analysis. Hirshfeld, Hirshfeld-I, VDD, Mulliken, Löwdin, Modified ...


8

I wouldn't recommend that you go above $10^{-8}$, what you have in your current calculation. With SCF calculations, you definitely need a lower convergence threshold compared to say relaxing procedures. I suspect your problem is rooted elsewhere. Try: Lowering 'mixing-beta' Removing 'verbosity' as it just prints energy levels and takes up time, which you ...


8

Apart from methods (1) and (2) mentioned in the question, the third method I found to be pretty viable under certain conditions. The procedure involves mathematical interpolation of the bands, so I have to caution the reader that this is not completely rigorous like Wannier interpolation, which retains the nature of the wave-functions generated from the SCF ...


8

Edit: This no longer seems to be the issue, as the atomic positions are apparently essentially unchanged, per @KevinJ.M.'s comment. I will nonetheless keep the answer here because it is still important to consider going forward. It looks like you are getting a different magnetization because the structures are not identical. Your first structure is fully ...


8

Looking at your input and output files, I think the most likely explanation is a different local minimum in the energy, as mentioned by Andrew in the comments. If you look at the final scf step in the vc-relax output, it uses the starting magnetization from the last bfgs step, not the initial values you used at the start of the vc-relax. I would try two ...


8

The DATASET "MillerIndices" stores the vectors of reciprocal space, namely $n_1$, $n_2$, and $n_3$ in following equation: $$\dfrac{1}{\sqrt{V}}e^{i\vec{G}\cdot\vec{r}}=\dfrac{1}{\sqrt{V}}e^{i(n_1 \vec{a}_1+n_2\vec{b}_2+n_3\vec{b}_3)\cdot\vec{r}}$$ I assume that you have $m$ plane waves, then the data space should be $(m,3)$. As you said, the ...


8

I have not had the pleasure of programming Fortran, but have learned and used many other languages over decades, both privately and commercially. My preferred way of diving into a new language may be a bit old-fashioned. I normally stay very much clear of "tutorials" and the like. First thing I do is I grab the official reference documentation - or,...


8

You can install xcrysden using Xming and Cygwin without resorting to WSL and it worked well for me. Install XMing and RUN Install CYGWIN with the following packages: tcl-tk, tcl-togl, fftw3, libGL1, xorg-server, bash, bc,coreutils, grep, gzip less, util-linux, ImageMagick, tcl-tk8.6, tcl-togl, ImageMagick, xinit, mesa libfftw3_3, ...


7

With the Materials Project and magnetism, it's often useful to download the structure directly and examine the magnetic moments on that structure, for example using the pymatgen Python code and the MPRester class, like so: from pymatgen import MPRester with MPRester() as mpr: # you may need to supply your API key in the parentheses here, see ...


Only top voted, non community-wiki answers of a minimum length are eligible