A package to generate and execute python scripts of abaqus models of geotechnical tests.
In order to use this package, you need to install the numpy
and matplotlib
package:
pip install numpy
pip install matplotlib
And furthermore, install abaqus properly, and link the FORTRAN compiler to abaqus, and add the abaqus commands directory to the system path environment.
And then install this package:
pip install abageotests
You can also find this project in abageotests · PyPI.
from abageotests import *
dst = AbaqusDirectShearTest(AbaqusCalculationMethod.Standard)
dst.InitialStressGeneralStaticStep(
time_period=1.0, initial_increment_size=0.1,
maximal_increment_size=1.0, maximal_increments=10000)
dst.ShearGeneralStaticStep(
time_period=1.0, initial_increment_size=0.01,
maximal_increment_size=0.01, maximal_increments=1000000)
dst.Displacement(0.006, 0, 0, 0, 0, 0)
dst.NormalContact(AbaqusNormalContactType.Hard, constraintEnforcementMethod=DEFAULT)
dst.TangentialContact(AbaqusTangentialContactType.Frictionless)
dst.WorkDirectory('dst-example')
dst.SoilGeometry(0.06, 0.06, 0.02)
dst.SolidGeometry(0.1, 0.1, 0.02)
dst.SoilMesh(AbaqusMeshMethod.BySize, 0.01)
dst.SolidMesh(AbaqusMeshMethod.BySize, 0.01)
dst.SoilMaterial(4e4, 0.0, 2e8)
dst.SolidMaterial(2e8, 0.0, 2.0)
dst.FieldOutput(['S', 'E', 'LE', 'U', 'RF', 'RT', 'RM', 'P',
'CSTRESS', 'CDISP', 'CFORCE', 'CNAREA', 'CSTATUS'])
dst.HistoryOutput(['U1', 'RF1'], 50)
dst.Pressure(310)
dst.PredefinedStress(-310, -310, -310, 0, 0, 0)
dst.ModelName('dst')
dst.OutputName('output')
dst.generateAbaqusPythonScript()
dst.generateAbaqusCaeModel()
dst.submit()
dst.extractOutputData()
dst.plot()
dst.resetWorkDirectory()
from abageotests import *
pullout = AbaqusPullOut(AbaqusCalculationMethod.Standard)
pullout.NailGeometry(0.05, 1.2)
pullout.SoilGeometry(1.0, 0.3, 0.8)
pullout.NailOffsetGeometry(0.4)
pullout.SoilMaterial(4e4, 0.3, None, 30.0, 3.0, 5.0, 0.0)
pullout.NailMaterial(3.2e7, 0.2)
pullout.Displacement(0.0, 0.0, 8e-4, 0.0, 0.0, 0.0)
pullout.Pressure(310.0)
pullout.PredefinedStress(-310.0, -310.0, -310.0, 0.0, 0.0, 0.0)
pullout.NormalContact(AbaqusNormalContactType.Hard, constraintEnforcementMethod=DEFAULT)
pullout.TangentialContact(AbaqusTangentialContactType.Frictionless)
pullout.SoilMesh(AbaqusMeshDenseMethod.General, AbaqusMeshMethod.BySize, 0.025)
pullout.SoilMesh(AbaqusMeshDenseMethod.Dense, AbaqusMeshMethod.BySize, 0.01)
pullout.NailMesh(AbaqusMeshDenseMethod.General, AbaqusMeshMethod.BySize, 0.025)
pullout.NailMesh(AbaqusMeshDenseMethod.Dense, AbaqusMeshMethod.BySize, 0.01)
pullout.InitialStressGeneralStaticStep(
time_period=1.0, initial_increment_size=0.01, maximal_increment_size=0.1,
minimal_increment_size=0.001, maximal_increments=1000)
pullout.PulloutGeneralStaticStep(
time_period=1.0, initial_increment_size=0.01, maximal_increment_size=0.1,
minimal_increment_size=0.001, maximal_increments=1000)
pullout.FieldOutput(['S', 'E', 'LE', 'U', 'V', 'A', 'RF', 'P',
'CSTRESS', 'CFORCE', 'FSLIPR', 'FSLIP', 'PPRESS'])
pullout.HistoryOutput(['U1', 'RF1'], 50)
pullout.WorkDirectory('pullout-example')
pullout.ModelName('pullout')
pullout.OutputName('output')
pullout.generateAbaqusPythonScript()
pullout.generateAbaqusCaeModel()
pullout.submit()
pullout.extractOutputData()
pullout.resetWorkDirectory()