9 #ifndef IMPNPCTRANSPORT_SLAB_WITH_TOROIDAL_PORE_H
10 #define IMPNPCTRANSPORT_SLAB_WITH_TOROIDAL_PORE_H
12 #include "npctransport_config.h"
17 IMPNPCTRANSPORT_BEGIN_NAMESPACE
47 double minor_radius_h2v_aspect_ratio=1.0);
70 double, major_radius);
93 double, minor_radius_h2v_aspect_ratio);
97 return SlabWithPore::get_is_setup(m, pi) &&
102 void set_minor_radius_h2v_aspect_ratio(
double aspect_ratio){
104 (get_minor_radius_h2v_aspect_ratio_key(),
108 double get_minor_radius_h2v_aspect_ratio()
const{
110 (get_minor_radius_h2v_aspect_ratio_key());
113 double get_vertical_minor_radius()
const{
117 void set_vertical_minor_radius(
double rv) {
121 double get_horizontal_minor_radius()
const{
122 return get_vertical_minor_radius()*get_minor_radius_h2v_aspect_ratio();
125 void set_horizontal_minor_radius(
double rh) {
126 set_minor_radius_h2v_aspect_ratio
127 ( rh/ get_vertical_minor_radius() );
131 static FloatKey get_minor_radius_h2v_aspect_ratio_key();
134 static IntKey get_toroidal_pore_key();
140 IMP_DECORATORS(SlabWithToroidalPore, SlabsWithToroidalPores, IMP::SlabsWithPores);
142 IMPNPCTRANSPORT_END_NAMESPACE
The base class for decorators.
Key< 0 > FloatKey
The type used to identify float attributes in the Particles.
static bool get_is_setup(Model *m, ParticleIndex pi)
Return true if the particle is an instance of SlabWithToroidalPore.
Class for storing model, its restraints, constraints, and particles.
void set_thickness(double thickness)
sets slab thickness
Helper macros for implementing Decorators.
Key< 1 > IntKey
The type used to identify int attributes in the Particles.
#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.
Float get_thickness() const
returns whether the particle last entered the transport moiety from its
#define IMP_DECORATOR_METHODS(Name, Parent)
#define IMP_DECORATORS(Name, PluralName, Parent)
Define the types for storing sets of decorators.
A decorator for a particle that's a slab with a cylindrical pore.
bool get_has_attribute(TypeKey attribute_key, ParticleIndex particle) const
return true if particle has attribute with the specified key
#define IMP_DECORATOR_SETUP_3(Name, FirstArgumentType, first_argument_name,SecondArgumentType, second_argument_name,ThirdArgumentType, third_argument_name)