source: ThirdParty/vmg/src/units/particle/interface_particles.hpp@ be848d

Action_Thermostats Add_AtomRandomPerturbation Add_SelectAtomByNameAction Adding_Graph_to_ChangeBondActions Adding_MD_integration_tests Adding_StructOpt_integration_tests AutomationFragmentation_failures Candidate_v1.6.1 ChangeBugEmailaddress ChemicalSpaceEvaluator EmpiricalPotential_contain_HomologyGraph_documentation Enhance_userguide Enhanced_StructuralOptimization Enhanced_StructuralOptimization_continued Example_ManyWaysToTranslateAtom Exclude_Hydrogens_annealWithBondGraph Fix_Verbose_Codepatterns ForceAnnealing_oldresults ForceAnnealing_with_BondGraph ForceAnnealing_with_BondGraph_continued ForceAnnealing_with_BondGraph_continued_betteresults ForceAnnealing_with_BondGraph_contraction-expansion Gui_displays_atomic_force_velocity IndependentFragmentGrids_IntegrationTest JobMarket_RobustOnKillsSegFaults JobMarket_StableWorkerPool PythonUI_with_named_parameters QtGui_reactivate_TimeChanged_changes Recreated_GuiChecks StoppableMakroAction TremoloParser_IncreasedPrecision TremoloParser_MultipleTimesteps
Last change on this file since be848d was 7faa5c, checked in by Frederik Heber <heber@…>, 8 years ago

Merge commit 'de061d9d851257a04e924d4472df4523d33bb08b' as 'ThirdParty/vmg'

  • Property mode set to 100644
File size: 1.9 KB
Line 
1/*
2 * vmg - a versatile multigrid solver
3 * Copyright (C) 2012 Institute for Numerical Simulation, University of Bonn
4 *
5 * vmg is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * vmg 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 General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19/**
20 * @file interface_particles.hpp
21 * @author Julian Iseringhausen <isering@ins.uni-bonn.de>
22 * @date Tue Apr 12 17:40:36 2011
23 *
24 * @brief Interface for computing forces and energies in
25 * particle systems.
26 *
27 */
28
29#ifndef INTERFACE_PARTICLES_HPP
30#define INTERFACE_PARTIVLES_HPP
31
32#include <list>
33
34#include "base/defs.hpp"
35#include "base/interface.hpp"
36#include "units/particle/bspline.hpp"
37#include "units/particle/particle.hpp"
38
39namespace VMG
40{
41
42class Grid;
43class Multigrid;
44
45class InterfaceParticles : public Interface
46{
47public:
48 InterfaceParticles(const Boundary& boundary, const int& levelMin, const int& levelMax,
49 const Vector& box_offset, const vmg_float& box_size,
50 const int& near_field_cells,
51 const int& max_boundary_nodes = 9, const vmg_float& alpha = 1.6) :
52 Interface(boundary, levelMin, levelMax, box_offset, box_size, max_boundary_nodes, alpha),
53 spl(near_field_cells, Extent(MaxLevel()).MeshWidth().Max())
54 {}
55
56 void ImportRightHandSide(Multigrid& multigrid);
57 void ExportSolution(Grid& grid);
58
59protected:
60 Particle::BSpline spl;
61
62private:
63 std::list<Particle::Particle> particles;
64};
65
66}
67
68#endif /* INTERFACE_PARTICLES_HPP */
Note: See TracBrowser for help on using the repository browser.