File: forceFieldParameters.C

package info (click to toggle)
ball 1.5.0%2Bgit20180813.37fc53c-11
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 239,924 kB
  • sloc: cpp: 326,149; ansic: 4,208; python: 2,303; yacc: 1,778; lex: 1,099; xml: 958; sh: 322; javascript: 164; makefile: 88
file content (93 lines) | stat: -rw-r--r-- 1,691 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//

#include <BALL/MOLMEC/PARAMETER/forceFieldParameters.h>

namespace BALL 
{

	ForceFieldParameters::ForceFieldParameters()
		: Parameters(),
			atom_types_()
	{
		valid_ = false;
	}


	ForceFieldParameters::ForceFieldParameters(const String& filename)
		:	Parameters(),
			atom_types_()
	{
		// try to read the parameter file
		INI_file_.setFilename(filename);
		init();
	}


	ForceFieldParameters::ForceFieldParameters
		(const ForceFieldParameters& force_field_parameter)
		: Parameters(force_field_parameter),
			atom_types_(force_field_parameter.atom_types_)
	{
	}


	ForceFieldParameters::~ForceFieldParameters()
		
	{
		clear();
	}


	void ForceFieldParameters::clear()
		
	{
		// clean up everything
		INI_file_.clear();
		valid_ = false;
	}


	const ForceFieldParameters& ForceFieldParameters::operator = 
		(const ForceFieldParameters& param)
	{
		Parameters::operator = (param);
		atom_types_ = param.atom_types_;

		return *this;
	}


	AtomTypes& ForceFieldParameters::getAtomTypes() 
	{
		return atom_types_;
	}


	bool ForceFieldParameters::init()
	{
		// call the init() method of Parameters
		Parameters::init();

		// extract the AtomTypes section
		// set valid_ as extractSection checks for valid parameters!
		valid_ &= atom_types_.extractSection(*this, "AtomTypes");

		return valid_;
	}


	bool ForceFieldParameters::isValid() const
	{
		return (valid_ && atom_types_.isValid() && INI_file_.isValid());
	}


	bool ForceFieldParameters::operator == (const ForceFieldParameters& param) const
	{
		// ?????: Equality of the mother class Parameters
		return (param.atom_types_ == atom_types_);
	}

} // namespace BALL