Comments (5)
@richard-evans what do you think of using a pre-existent format such as yaml, json or INI files.
from vampire.
The format of the input files is fine as far as I am concerned (they are meant to be read and written by humans), but the processing code for them is unwieldy (3500+ lines of code in a single file). Eventually these will probably be refactored into an i/o module incorporating some new features such as a command line manual.
from vampire.
Separating the input into a separated module would make it a little bit more manageable for sure, specially you break it down to smaller files. In order to get it better, maybe we can make an approach with an Option class, so that all options get parsed automatically, a register for all the options, so there should be just one file listing all of them, and maybe a command pattern, through which the side effects of options and flags can be specified using simple functions.
from vampire.
An option class is an interesting idea. I had a look at this but everything gets a little crazy with templates and I kind of got stuck with the complexity of the solution (elegant for the coder but horrendous for the designer!). At the moment I have stuck with the current code design but with new options moved to an interface file in each submodule of vampire, which keeps things tidier for now. However, I would really like to include a command line help and also have a searchable list of options, which would require some central options class-type solution. Maybe the best way is to have distributed command registration but central parsing. Some more thought is required here I think...
from vampire.
Learning from somewhere else might help as well, I think this problem is common to several packages out there, maybe we should look for some on github see what they do.
from vampire.
Related Issues (20)
- I wondering whther it do magnetic calculation for real material system
- Having Difficulty in Running my First Calculation HOT 2
- Is able to use `cif` file to generate `ucf` file? HOT 6
- How to apply spin polarized current for STT induced dynamics calculations? HOT 5
- Error - Unknown control statement '3.8714174928081713 6.7054917948546713 26.4834277800000004' on line 2 of material file 'vampire.ucf'
- How to simulate the hysteresis?
- missing control statement 'sim:monte-carlo-algorithm' in version 6.0.0 HOT 2
- How to add tensorial exchange interactions and biquadratic terms simutanuously
- Checkpoints and mean values HOT 1
- parallel run with grains for number of processors > 2
- Compire opencl failed
- The program is aborted saying that the exchange matrix is greater than 1.0e18 but my exchange matrix is 1.512e-12. HOT 1
- MC for 2D systems HOT 1
- MPI implementation for Monte Carlo simulations
- exchange parameter J in Monte Carlo simulation HOT 1
- Error - Unknown control statement 'sim:enable-dipole-fields' HOT 1
- vdc --vtk, repeats the first spin multiple times in the vtu output
- unit cell creation from ucf ignores the rest of materials multi-material ucf (develop branch) HOT 2
- missing control statement 'exchange:ucc-exchange-parameter' in develop branch
- Cuda issue when compiling HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vampire.