def select_model(model=None): """Select the Frame Order model. @param model: The Frame Order model. This can be one of 'pseudo-ellipse', 'pseudo-ellipse, torsionless', 'pseudo-ellipse, free rotor', 'iso cone', 'iso cone, torsionless', 'iso cone, free rotor', 'rotor', 'rigid', 'free rotor', 'double rotor'. @type model: str """ # Test if the current data pipe exists. check_pipe() # Test if the model name exists. if not model in MODEL_LIST: raise RelaxError("The model name '%s' is invalid, it must be one of %s." % (model, MODEL_LIST)) # Set the model cdp.model = model # Initialise the list of model parameters. cdp.params = [] # Set the integration method if needed. if not hasattr(cdp, 'quad_int'): # Scipy quadratic numerical integration. if cdp.model in []: cdp.quad_int = True # Quasi-random numerical integration. else: cdp.quad_int = False # Update the model. update_model()
def select_model(model=None): """Select the Frame Order model. @param model: The Frame Order model. This can be one of 'pseudo-ellipse', 'pseudo-ellipse, torsionless', 'pseudo-ellipse, free rotor', 'iso cone', 'iso cone, torsionless', 'iso cone, free rotor', 'rotor', 'rigid', 'free rotor', 'double rotor'. @type model: str """ # Test if the current data pipe exists. check_pipe() # Test if the model name exists. if not model in MODEL_LIST: raise RelaxError( "The model name '%s' is invalid, it must be one of %s." % (model, MODEL_LIST)) # Set the model cdp.model = model # Initialise the list of model parameters. cdp.params = [] # Set the integration method if needed. if not hasattr(cdp, 'quad_int'): # Scipy quadratic numerical integration. if cdp.model in []: cdp.quad_int = True # Quasi-random numerical integration. else: cdp.quad_int = False # Update the model. update_model()
def get_param_names(self, model_info=None): """Return a vector of parameter names. @keyword model_info: The model information from model_loop(). This is unused. @type model_info: None @return: The vector of parameter names. @rtype: list of str """ # First update the model, if needed. update_model(verbosity=0) # Return the parameter list object. return cdp.params
def pivot(pivot=None, order=1, fix=False): """Set the pivot point for the 2 body motion. @keyword pivot: The pivot point of the two bodies (domains, etc.) in the structural coordinate system. @type pivot: list of num @keyword order: The ordinal number of the pivot point. The value of 1 is for the first pivot point, the value of 2 for the second pivot point, and so on. @type order: int @keyword fix: A flag specifying if the pivot point should be fixed during optimisation. @type fix: bool """ # Test if the current data pipe exists. check_pipe() # Store the fixed flag. cdp.pivot_fixed = fix # No pivot given, so update the model if needed and quit. if pivot is None: if hasattr(cdp, 'model'): update_model() return # Convert the pivot to a numpy array. pivot = array(pivot, float64) # Check the pivot validity. is_float_array(pivot, name='pivot point', size=3) # Store the pivot point and fixed flag. if order == 1: cdp.pivot_x = pivot[0] cdp.pivot_y = pivot[1] cdp.pivot_z = pivot[2] else: # The variable names. name_x = 'pivot_x_%i' % order name_y = 'pivot_y_%i' % order name_z = 'pivot_z_%i' % order # Store the variables. setattr(cdp, name_x, pivot[0]) setattr(cdp, name_y, pivot[1]) setattr(cdp, name_z, pivot[2]) # Update the model. if hasattr(cdp, 'model'): update_model()
def ref_domain(ref=None): """Set the reference domain for the frame order, multi-domain models. @param ref: The reference domain. @type ref: str """ # Checks. check_pipe() check_domain(domain=ref, escalate=0) # Set the reference domain. cdp.ref_domain = ref # Update the model. if hasattr(cdp, 'model'): update_model()