ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
polymer.hpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2010-2022 The ESPResSo project
3 * Copyright (C) 2002,2003,2004,2005,2006,2007,2008,2009,2010
4 * Max-Planck-Institute for Polymer Research, Theory Group
5 *
6 * This file is part of ESPResSo.
7 *
8 * ESPResSo is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation, either version 3 of the License, or
11 * (at your option) any later version.
12 *
13 * ESPResSo is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 */
21
22#pragma once
23
24/** \file
25 *
26 * This file contains everything needed to create a start-up
27 * configuration of polymer chains which may respect already
28 * existing particles and/or constraints.
29 *
30 * Implementation in polymer.cpp.
31 */
32
33#include "system/System.hpp"
34
35#include <utils/Vector.hpp>
36
37#include <vector>
38
39/** Determines valid polymer positions and returns them.
40 * @param system particle system
41 * @param n_polymers how many polymers to create
42 * @param beads_per_chain monomers per chain
43 * @param bond_length length of the bonds between two monomers
44 * @param start_positions starting positions of each polymers
45 * @param min_distance minimum distance between all particles
46 * @param max_tries how often a monomer/polymer should be reset if
47 * current position collides with a previous particle
48 * @param use_bond_angle whether to use the @p bond_angle argument
49 * @param bond_angle desired bond-angle to be fixed
50 * @param respect_constraints whether to respect constraints
51 * @param seed seed for RNG
52 */
53std::vector<std::vector<Utils::Vector3d>>
54draw_polymer_positions(System::System const &system, int n_polymers,
55 int beads_per_chain, double bond_length,
56 std::vector<Utils::Vector3d> const &start_positions,
57 double min_distance, int max_tries, int use_bond_angle,
58 double bond_angle, int respect_constraints, int seed);
Vector implementation and trait types for boost qvm interoperability.
Main system class.
std::vector< std::vector< Utils::Vector3d > > draw_polymer_positions(System::System const &system, int n_polymers, int beads_per_chain, double bond_length, std::vector< Utils::Vector3d > const &start_positions, double min_distance, int max_tries, int use_bond_angle, double bond_angle, int respect_constraints, int seed)
Determines valid polymer positions and returns them.
Definition polymer.cpp:145