Tissue Forge C++ 0.2.1
Interactive, particle-based physics, chemistry and biology modeling and simulation environment
Loading...
Searching...
No Matches
tf_mdcore_io.h
1/*******************************************************************************
2 * This file is part of mdcore.
3 * Copyright (c) 2022-2024 T.J. Sego
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Lesser General Public License as published
7 * by the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 *
18 ******************************************************************************/
19
20#ifndef _MDCORE_SOURCE_TF_MDCORE_IO_H_
21#define _MDCORE_SOURCE_TF_MDCORE_IO_H_
22
23#include <mdcore_config.h>
24#include <io/tf_io.h>
25#include <tf_errs.h>
26#include <tfAngle.h>
27#include <tfBond.h>
29#include <tfDihedral.h>
30#include <tfFlux.h>
31#include <tfForce.h>
32#include <tfParticle.h>
33#include <tfPotential.h>
34#include <tfDPDPotential.h>
35
36
37namespace TissueForge::io {
38
39
40 template <>
41 HRESULT toFile(const Angle &dataElement, const MetaData &metaData, IOElement &fileElement);
42
43 template <>
44 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, Angle *dataElement);
45
46 template <>
47 HRESULT toFile(const Bond &dataElement, const MetaData &metaData, IOElement &fileElement);
48
49 template <>
50 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, Bond *dataElement);
51
52 template <>
53 HRESULT toFile(const BoundaryCondition &dataElement, const MetaData &metaData, IOElement &fileElement);
54
55 template <>
56 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, BoundaryCondition *dataElement);
57
58 template <>
59 HRESULT toFile(const BoundaryConditions &dataElement, const MetaData &metaData, IOElement &fileElement);
60
61 // Requires returned value to already be initialized with cells
62 template <>
63 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, BoundaryConditions *dataElement);
64
65 // Takes a file element generated from BoundaryConditions
66 template <>
67 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, BoundaryConditionsArgsContainer *dataElement);
68
69 template <>
70 HRESULT toFile(const Dihedral &dataElement, const MetaData &metaData, IOElement &fileElement);
71
72 template <>
73 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, Dihedral *dataElement);
74
75 template <>
76 HRESULT toFile(const TypeIdPair &dataElement, const MetaData &metaData, IOElement &fileElement);
77
78 template <>
79 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TypeIdPair *dataElement);
80
81 template <>
82 HRESULT toFile(const Flux &dataElement, const MetaData &metaData, IOElement &fileElement);
83
84 template <>
85 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, Flux *dataElement);
86
87 template <>
88 HRESULT toFile(const Fluxes &dataElement, const MetaData &metaData, IOElement &fileElement);
89
90 template <>
91 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, Fluxes *dataElement);
92
93 template <>
94 HRESULT toFile(const FORCE_TYPE &dataElement, const MetaData &metaData, IOElement &fileElement);
95
96 template <>
97 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, FORCE_TYPE *dataElement);
98
99 template <>
100 HRESULT toFile(const CustomForce &dataElement, const MetaData &metaData, IOElement &fileElement);
101
102 template <>
103 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, CustomForce *dataElement);
104
105 template <>
106 HRESULT toFile(const ForceSum &dataElement, const MetaData &metaData, IOElement &fileElement);
107
108 template <>
109 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, ForceSum *dataElement);
110
111 template <>
112 HRESULT toFile(const Berendsen &dataElement, const MetaData &metaData, IOElement &fileElement);
113
114 template <>
115 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, Berendsen *dataElement);
116
117 template <>
118 HRESULT toFile(const Gaussian &dataElement, const MetaData &metaData, IOElement &fileElement);
119
120 template <>
121 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, Gaussian *dataElement);
122
123 template <>
124 HRESULT toFile(const Friction &dataElement, const MetaData &metaData, IOElement &fileElement);
125
126 template <>
127 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, Friction *dataElement);
128
129 template <>
130 HRESULT toFile(Force *dataElement, const MetaData &metaData, IOElement &fileElement);
131
132 template <>
133 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, Force **dataElement);
134
135 template <>
136 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, std::vector<Force*> *dataElement);
137
138 template <>
139 HRESULT toFile(const Particle &dataElement, const MetaData &metaData, IOElement &fileElement);
140
141 template <>
142 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, Particle *dataElement);
143
144 template <>
145 HRESULT toFile(const ParticleType &dataElement, const MetaData &metaData, IOElement &fileElement);
146
147 template <>
148 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, ParticleType *dataElement);
149
150 template <>
151 HRESULT toFile(const ParticleList &dataElement, const MetaData &metaData, IOElement &fileElement);
152
153 template <>
154 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, ParticleList *dataElement);
155
156 template <>
157 HRESULT toFile(const ParticleTypeList &dataElement, const MetaData &metaData, IOElement &fileElement);
158
159 template <>
160 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, ParticleTypeList *dataElement);
161
162 template <>
163 HRESULT toFile(Potential *dataElement, const MetaData &metaData, IOElement &fileElement);
164
165 template <>
166 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, Potential **dataElement);
167
168 HRESULT toFile(DPDPotential *dataElement, const MetaData &metaData, IOElement &fileElement);
169
170 template <>
171 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, DPDPotential **dataElement);
172};
173
174#endif // _MDCORE_SOURCE_TF_MDCORE_IO_H_
Tissue Forge I/O.
Definition tfThreeDFAngleMeshGenerator.h:28
HRESULT toFile(const T &dataElement, const MetaData &metaData, IOElement &fileElement)
Convert an object to an intermediate I/O object.
HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, T *dataElement)
Instantiate an object from an intermediate I/O object.
struct TissueForge::Dihedral Dihedral
struct TissueForge::Bond Bond
Bonds apply a potential to a particular set of particles.
struct TissueForge::Angle Angle
A bond concerning an angle.
Container for _IOElement.
Definition tf_io.h:71
Tissue Forge meta data.
Definition tf_io.h:131
int32_t HRESULT
Definition tf_port.h:255