eOn 3.2.0
Long-timescale dynamics: aKMC, NEB, parallel replica
☾
Toggle main menu visibility
Loading...
Searching...
No Matches
EffectiveMediumTheory.h
Go to the documentation of this file.
1
/*
2
** This file is part of eOn.
3
**
4
** SPDX-License-Identifier: BSD-3-Clause
5
**
6
** Copyright (c) 2010--present, eOn Development Team
7
** All rights reserved.
8
**
9
** Repo:
10
** https://github.com/TheochemUI/eOn
11
*/
12
#pragma once
13
14
// serves as an interface between emt potentials provided by CamposASE and
15
// dynamics provided by eOn
16
17
#include "
eon/potentials/EMT/Asap/Atoms.h
"
18
#include "
eon/potentials/EMT/Asap/EMT.h
"
19
#include "
eon/potentials/EMT/Asap/EMTDefaultParameterProvider.h
"
20
#include "
eon/potentials/EMT/Asap/EMTRasmussenParameterProvider.h
"
21
#include "
eon/potentials/EMT/Asap/SuperCell.h
"
22
#include "
eon/potentials/EMT/Asap/Vec.h
"
23
24
#include "
eon/Parameters.h
"
25
#include "
eon/Potential.h
"
26
29
class
EffectiveMediumTheory
:
public
eonc::Potential
{
30
31
private
:
32
bool
emtRasmussen
{
false
};
33
long
numberOfAtoms
{0};
34
bool
periodicity
[3]{
true
,
true
,
true
};
35
Atoms
*
AtomsObj
{
nullptr
};
36
EMTDefaultParameterProvider
*
EMTParameterObj
{
nullptr
};
37
EMT
*
EMTObj
{
nullptr
};
38
SuperCell
*
SuperCellObj
{
nullptr
};
39
40
public
:
41
EffectiveMediumTheory
(
const
eonc::Parameters
&p)
42
:
eonc
::
Potential
(p),
emtRasmussen
{p.potential_options().EMTRasmussen} {}
43
~EffectiveMediumTheory
() {
cleanMemory
(); }
44
void
cleanMemory
();
45
46
// To satify interface
47
void
force
(
long
N,
const
double
*R,
const
int
*atomicNrs,
double
*F,
48
double
*U,
double
*variance,
const
double
*box);
49
51
[[nodiscard]]
bool
isSharedInstanceThreadSafe
() const noexcept
override
{
52
return
false
;
53
}
54
};
Atoms.h
EMTDefaultParameterProvider.h
EMTRasmussenParameterProvider.h
EMT.h
-- Implements the EMT potential for multiple elements.
Parameters.h
Potential.h
SuperCell.h
Vec.h
Atoms
The main list of atoms class.
Definition
Atoms.h:36
EMTDefaultParameterProvider
Definition
EMTDefaultParameterProvider.h:10
EMT
The Effective Medium Theory (EMT) potential.
Definition
EMT.h:24
EffectiveMediumTheory::AtomsObj
Atoms * AtomsObj
Definition
EffectiveMediumTheory.h:35
EffectiveMediumTheory::force
void force(long N, const double *R, const int *atomicNrs, double *F, double *U, double *variance, const double *box)
Definition
EffectiveMediumTheory.cpp:32
EffectiveMediumTheory::isSharedInstanceThreadSafe
bool isSharedInstanceThreadSafe() const noexcept override
ASAP Atoms/EMT objects are mutated in force(); do not share one instance.
Definition
EffectiveMediumTheory.h:51
EffectiveMediumTheory::SuperCellObj
SuperCell * SuperCellObj
Definition
EffectiveMediumTheory.h:38
EffectiveMediumTheory::periodicity
bool periodicity[3]
Definition
EffectiveMediumTheory.h:34
EffectiveMediumTheory::~EffectiveMediumTheory
~EffectiveMediumTheory()
Definition
EffectiveMediumTheory.h:43
EffectiveMediumTheory::numberOfAtoms
long numberOfAtoms
Definition
EffectiveMediumTheory.h:33
EffectiveMediumTheory::emtRasmussen
bool emtRasmussen
Definition
EffectiveMediumTheory.h:32
EffectiveMediumTheory::cleanMemory
void cleanMemory()
Definition
EffectiveMediumTheory.cpp:18
EffectiveMediumTheory::EffectiveMediumTheory
EffectiveMediumTheory(const eonc::Parameters &p)
Definition
EffectiveMediumTheory.h:41
EffectiveMediumTheory::EMTParameterObj
EMTDefaultParameterProvider * EMTParameterObj
Definition
EffectiveMediumTheory.h:36
EffectiveMediumTheory::EMTObj
EMT * EMTObj
Definition
EffectiveMediumTheory.h:37
SuperCell
The SuperCell defines the size, shape and boundary condx of a simulation.
Definition
SuperCell.h:20
eonc::Parameters
Definition
Parameters.h:35
eonc::Potential
Definition
Potential.h:42
eonc::Potential::Potential
Potential(PotType a_ptype)
Production default: construction-scope registry, else PotRegistry::get().
Definition
PotentialParams.cpp:29
eonc
RAII resource manager for the ARTn C library with global synchronization.
Definition
ARTnSaddleSearch.cpp:23
include
eon
potentials
EMT
EffectiveMediumTheory.h
Generated by
1.17.0
Generated by
Doxygen 1.17.0
Analytics by
Antics
provided by
TurtleTech ehf