Source code for Parts.standard_parts

from abaqus import *
from abaqusConstants import *
import section
import regionToolset
import part
import material
import sketch
from Parts import GeometryBuilder as gb


[docs]def centrosome( **kwargs ): """ Creates a centrosome part object, assigns material and section :param kwargs: model parameters :type kwargs: dict :return: centrosome part :rtype: object """ # Create Centrosome sketch l = kwargs['CentrosomeLength'] r = kwargs['CentrosomeRadius'] s = gb.create_centrosome_sketch(l, r, **kwargs) # Create Centrosome part p = gb.create_centrosome_part(s, 'centrosome', **kwargs) # Define material # CentrosomeE -> Elastic modulus of MT material # CentrosomeNu -> Poisson ratio of MT material ElasticModulus = kwargs['CentrosomeE'] PoissonRatio = kwargs['CentrosomeNu'] gb.define_material('centrosome_material', ElasticModulus, PoissonRatio, **kwargs) # Define section modelname = kwargs['modelname'] mdb.models[modelname].HomogeneousSolidSection( name='centrosome-section', material='centrosome_material', thickness=None) # Assign section gb.assign_centrosome_section(p, 'centrosome', 'centrosome-section', **kwargs) return p
[docs]def microtubule( type, l, i, **kwargs ): """ Creates a microtubule part object and assigns material and section :param type: Either aMT or ipMT :type type: str :param l: Length of the microtubule :type l: float :param i: Sequential index of the microtubule :type i: int :param kwargs: model parameters :type kwargs: dict :return: Null :rtype: Null """ # Create part p, MTname = gb.create_MT_part(l, type, i, **kwargs) # Define material # ElasticModulus -> Elastic modulus of MT material # PoissonRatio -> Poisson ratio of MT material ElasticModulus = kwargs['ElasticModulus'] PoissonRatio = kwargs['PoissonRatio'] gb.define_material('MT_material', ElasticModulus, PoissonRatio, **kwargs) # Define pipe-like profile # r1 -> inner radius of MT # r2 -> outer radius of MT modelname = kwargs['modelname'] r1 = kwargs['d']/2 r2 = kwargs['D']/2 mdb.models[modelname].PipeProfile( name='MT-profile', r=r2, t=(r2 - r1) / 2, formulation=THICK_WALL) # Define section gb.create_section('MT-section', 'MT-profile', 'MT_material', **kwargs) # Assign section gb.assign_MT_section(p, MTname, **kwargs) # Assign beam section orientation gb.assign_MT_section_orientation(MTname, **kwargs)
[docs]def connector( i, length, connectorname, **kwargs ): """ Creates a connector part object and assigns material and section :param i: Sequential number of the connector :type i: int :param length: Length of the connector :type length: float :param connectorname: Name of the connector :type connectorname: str :param kwargs: model parameters :type kwargs: dict :return: Null :rtype: Null """ # Create part p = gb.create_connector_part(connectorname, length, **kwargs) # Define circular profile and section ''' r -> radius of a connector beam E -> Elastic modulus of connector material nu -> Poisson ratio of connector material ''' r = kwargs['connectorRadius'] modelname = kwargs['modelname'] mdb.models[modelname].CircularProfile(name='connector-profile', r=r) E = kwargs['connectorE'] nu = kwargs['connectorNu'] gb.define_material('connector_material', E, nu, **kwargs) sectionName = 'connector-section' sectionProfile = 'connector-profile' sectionMaterial = 'connector_material' gb.create_section(sectionName, sectionProfile, sectionMaterial, **kwargs) # Assign beam section region = gb.assign_connector_section(p, 'connector-section', **kwargs) # Assign beam section orientation p.assignBeamSectionOrientation( region=region, method=N1_COSINES, n1=(0.0, 0.0, -1.0))