10 #ifndef IMPNPCTRANSPORT_RELAXING_SPRING_H
11 #define IMPNPCTRANSPORT_RELAXING_SPRING_H
13 #include "npctransport_config.h"
18 IMPNPCTRANSPORT_BEGIN_NAMESPACE
25 class IMPNPCTRANSPORTEXPORT
43 double equilibrium_rest_length_factor,
44 double rest_length_diffusion_coefficient);
66 double, equilibrium_rest_length_factor,
67 double, rest_length_diffusion_coefficient);
81 static FloatKey get_equilibrium_rest_length_factor_key();
84 static FloatKey get_rest_length_key();
87 static FloatKey get_rest_length_diffusion_coefficient_key();
89 Particle* get_bonded_particle_0()
const{
91 return this_p->get_value(get_bonded_particle_0_key());
94 Particle* get_bonded_particle_1()
const{
96 return this_p->get_value(get_bonded_particle_1_key());
100 return get_bonded_particle_0()->get_index();
104 return get_bonded_particle_1()->get_index();
109 get_equilibrium_rest_length_factor_key(),
113 get_rest_length_key(),
117 get_rest_length_diffusion_coefficient_key(),
120 void add_to_rest_length_derivative
123 get_model()->add_to_derivative( get_rest_length_key(),
129 double get_rest_length_derivative()
131 return get_model()->get_derivative( get_rest_length_key(),
141 IMPNPCTRANSPORT_END_NAMESPACE
The base class for decorators.
#define IMP_DECORATOR_GET_SET(name, AttributeKey, Type, ReturnType)
Define methods for getting and setting a particular simple field.
ParticleIndex get_particle_index() const
Returns the particle index decorated by this decorator.
static bool get_is_setup(Model *m, ParticleIndex pi)
Return true if the particle is an instance of an Transporting.
Model * get_model() const
Returns the Model containing the particle.
Index< ParticleIndexTag > ParticleIndex
Class for storing model, its restraints, constraints, and particles.
Helper macros for implementing Decorators.
#define IMP_DECORATOR_SETUP_4(Name, FirstArgumentType, first_argument_name,SecondArgumentType, second_argument_name,ThirdArgumentType, third_argument_name,FourthArgumentType, fourth_argument_name)
A decorator for a spring particle connecting two diffusing particles.
Particle * get_particle() const
Returns the particle decorated by this decorator.
Interface to specialized Particle types (e.g. atoms)
Classes to handle individual model particles. (Note that implementation of inline functions is in int...
#define IMP_DECORATOR_METHODS(Name, Parent)
double Float
Basic floating-point value (could be float, double...)
Class to handle individual particles of a Model object.
#define IMP_DECORATORS(Name, PluralName, Parent)
Define the types for storing sets of decorators.
bool get_has_attribute(TypeKey attribute_key, ParticleIndex particle) const
return true if particle has attribute with the specified key
Class for adding derivatives from restraints to the model.