tblite
Light-weight tight-binding framework
Loading...
Searching...
No Matches
container.h
Go to the documentation of this file.
1/* This file is part of tblite.
2 * SPDX-Identifier: LGPL-3.0-or-later
3 *
4 * tblite is free software: you can redistribute it and/or modify it under
5 * the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * tblite is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public License
15 * along with tblite. If not, see <https://www.gnu.org/licenses/>.
16**/
17
23#pragma once
24
25#include "tblite/macros.h"
26#include "tblite/structure.h"
27#include "tblite/calculator.h"
28#include "tblite/context.h"
29
31typedef struct _tblite_container* tblite_container;
32
39
51 double wscale);
52
53#define tblite_new_cpcm_solvation(ctx, mol, calc, x) \
54 _Generic((x), \
55 char* \
56 : tblite_new_cpcm_solvation_solvent,\
57 double \
58 : tblite_new_cpcm_solvation_epsilon \
59 ) (ctx, mol, calc, x)
60
72 double eps);
73
85 char* solvent);
86
87#define tblite_new_alpb_solvation(ctx, mol, calc, x) \
88 _Generic((x), \
89 char* \
90 : tblite_new_alpb_solvation_solvent,\
91 double \
92 : tblite_new_alpb_solvation_epsilon) (ctx, mol, calc, x)
93
105 char* solvent);
106
118 double eps);
119
130 tblite_container* cont);
131
Provides a single point calculator for performing extended tight-binding computations.
struct _tblite_calculator * tblite_calculator
Single point calculator.
Definition calculator.h:46
TBLITE_API_ENTRY tblite_container TBLITE_API_CALL tblite_new_cpcm_solvation_epsilon(tblite_context ctx, tblite_structure mol, tblite_calculator calc, double eps)
TBLITE_API_ENTRY tblite_container TBLITE_API_CALL tblite_new_cpcm_solvation_solvent(tblite_context ctx, tblite_structure mol, tblite_calculator calc, char *solvent)
struct _tblite_container * tblite_container
Interaction container.
Definition container.h:31
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_delete_container(tblite_container *cont)
TBLITE_API_ENTRY tblite_container TBLITE_API_CALL tblite_new_spin_polarization(tblite_context ctx, tblite_structure mol, tblite_calculator calc, double wscale)
TBLITE_API_ENTRY tblite_container TBLITE_API_CALL tblite_new_alpb_solvation_solvent(tblite_context ctx, tblite_structure mol, tblite_calculator calc, char *solvent)
TBLITE_API_ENTRY tblite_container TBLITE_API_CALL tblite_new_electric_field(double *efield)
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_calculator_push_back(tblite_context ctx, tblite_calculator calc, tblite_container *cont)
TBLITE_API_ENTRY tblite_container TBLITE_API_CALL tblite_new_alpb_solvation_epsilon(tblite_context ctx, tblite_structure mol, tblite_calculator calc, double eps)
Provides a persistent configuration object to modify the behaviour of a calculation....
General macro definitions for the tblite C API bindings.
#define TBLITE_API_ENTRY
Definition macros.h:49
#define TBLITE_API_CALL
Definition macros.h:57
Proxy module for the calculation context related data types.
Definition context.f90:59
The structure data tblite_structure is used to represent the system of interest in the library.
struct _tblite_structure * tblite_structure
Definition structure.h:47