Source code for LoadCase.LoadsAndBCs
from abaqus import *
from abaqusConstants import *
[docs]def create_load(data, **kwargs):
"""
Create and apply compressing load at each connection between connectors and ipMTs
:param data: list containing all ipMTs and connectors of the model
:type data: list
:param kwargs: model parameters
:type kwargs: dict
:return: Null
:rtype: Null
"""
# Call the current assembly
modelname = kwargs['modelname']
a = mdb.models[modelname].rootAssembly
StepName = kwargs['StepName']
LoadVal = kwargs['CompressiveLoad']
# Select vertices to apply load
# Iterate through unique ipMT names
mt_names = [sublist[0] for sublist in data]
mt_names = set(mt_names)
# Specify that the load is negative for all ipMTs that have even numbers and positive otherwise
for mtname in mt_names:
if int(mtname[-1]) % 2 == 0:
load = -LoadVal
else:
load = LoadVal
# Locate the points to which loads are to be applied
for sublist in data:
if mtname == sublist[0]:
connector_end = sublist[3]
connector_name = sublist[1]
# Select points that connect ipMTs with connectors
ConnectorEnd = a.instances[connector_name].vertices[connector_end].pointOn
loadPoint = a.instances[connector_name].vertices.findAt(ConnectorEnd, )
loadName = 'Load-' + connector_name + '-' + str(connector_end)
loadRegion = a.Set(vertices=loadPoint,
name=loadName)
# Apply loads
mdb.models[modelname].ConcentratedForce(name=loadName,
createStepName=StepName,
region=loadRegion,
cf3=load,
distributionType=UNIFORM,
field='',
localCsys=None)
[docs]def create_bc(**kwargs):
"""
Fix growing ends of aMTs where they are attached to the membrane
:param kwargs: model parameters
:type kwargs: dict
:return: Null
:rtype: Null
"""
modelname = kwargs['modelname']
# Call for the current assembly
a = mdb.models[modelname].rootAssembly
aMTnames = kwargs['aMTnames']
for i in range(len(aMTnames)):
v = a.instances[aMTnames[i]].vertices
verts = v.getSequenceFromMask(mask=('[#2]', ), )
region = a.Set(vertices=verts, name='FixedBCregion_'+str(i))
mdb.models[modelname].EncastreBC(name='FixedBC_'+str(i),
createStepName='Initial',
region=region,
localCsys=None)