9 #ifndef IMPATOM_DIFFUSION_H
10 #define IMPATOM_DIFFUSION_H
12 #include <IMP/atom/atom_config.h>
16 #include <IMP/internal/constants.h>
21 IMPATOM_BEGIN_NAMESPACE
37 "Particle must already be an XYZ particle");
43 do_setup_particle(m, pi, D);
69 get_particle()->set_value(get_diffusion_coefficient_key(), d);
78 static FloatKey get_diffusion_coefficient_key();
81 IMPATOMEXPORT
double get_diffusion_coefficient_from_cm2_per_second(
double din);
108 (get_rotational_diffusion_coefficient_key(),
115 return get_particle()->set_value(get_rotational_diffusion_coefficient_key(),
125 static FloatKey get_rotational_diffusion_coefficient_key();
128 IMP_DECORATORS(RigidBodyDiffusion, RigidBodyDiffusions, Diffusions);
130 IMPATOM_END_NAMESPACE
ParticleIndex get_particle_index() const
Returns the particle index decorated by this decorator.
static bool get_is_setup(Model *m, ParticleIndex p)
Return true if the particle is an instance of an Diffusion.
#define IMP_DECORATOR_SETUP_1(Name, FirstArgumentType, first_argument_name)
Model * get_model() const
Returns the Model containing the particle.
static XYZ setup_particle(Model *m, ParticleIndex pi)
double get_diffusion_coefficient() const
get diffusion coefficient in
Class for storing model, its restraints, constraints, and particles.
void set_rotational_diffusion_coefficient(double d) const
sets the rotational diffusion coefficient in
void set_diffusion_coefficient(double d)
set diffusion coefficient in
void add_attribute(TypeKey attribute_key, ParticleIndex particle, Type value)
add particle atribute with the specied key and initial value
#define IMP_DECORATOR_SETUP_2(Name, FirstArgumentType, first_argument_name,SecondArgumentType, second_argument_name)
A decorator for a particle with x,y,z coordinates.
#define IMP_DECORATOR_SETUP_0(Name)
static bool get_is_setup(Model *m, ParticleIndex p)
Return true if the particle is an instance of Diffusion.
Particle * get_particle() const
Returns the particle decorated by this decorator.
#define IMP_DECORATOR_METHODS(Name, Parent)
double get_rotational_diffusion_coefficient() const
returns the rotational diffusion coefficient in
double Float
Basic floating-point value (could be float, double...)
#define IMP_USAGE_CHECK(expr, message)
A runtime test for incorrect usage of a class or method.
#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
A decorator for a diffusing particle with a diffusion coefficient.
Type get_attribute(TypeKey attribute_key, ParticleIndex particle)
get the value of the particle attribute with the specified key
Decorator for a sphere-like particle.