9 #ifndef IMPNPCTRANSPORT_SLAB_WITH_PORE_H
10 #define IMPNPCTRANSPORT_SLAB_WITH_PORE_H
12 #include "npctransport_config.h"
16 IMPNPCTRANSPORT_BEGIN_NAMESPACE
103 get_particle()->add_to_derivative(get_pore_radius_key(), v, d);
106 bool get_pore_radius_is_optimized()
const {
107 return get_particle()->get_is_optimized(get_pore_radius_key());
111 get_particle()->set_is_optimized(get_pore_radius_key(), tf);
115 static FloatKey get_thickness_key();
118 static FloatKey get_pore_radius_key();
125 IMPNPCTRANSPORT_END_NAMESPACE
The base class for decorators.
void add_to_pore_radius_derivative(double v, DerivativeAccumulator &d)
static bool get_is_setup(Model *m, ParticleIndex pi)
Return true if the particle is an instance of SlabWithPore.
Class for storing model, its restraints, constraints, and particles.
void set_pore_radius_is_optimized(bool tf) const
Set whether the coordinates are optimized.
Float get_pore_radius() const
get cylindrical pore radius
void set_thickness(double thickness)
sets slab thickness
Helper macros for implementing Decorators.
#define IMP_DECORATOR_SETUP_2(Name, FirstArgumentType, first_argument_name,SecondArgumentType, second_argument_name)
Particle * get_particle() const
Returns the particle decorated by this decorator.
Interface to specialized Particle types (e.g. atoms)
Float get_thickness() const
returns whether the particle last entered the transport moiety from its
void set_pore_radius(double r) const
set cylindrical pore radius
#define IMP_DECORATOR_METHODS(Name, Parent)
double Float
Basic floating-point value (could be float, double...)
#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.