Skip to content
Snippets Groups Projects
Commit 9ce943eb authored by whimsial's avatar whimsial
Browse files

updated gitignore

parent 85eba96c
Branches
No related tags found
No related merge requests found
Showing
with 1 addition and 195747 deletions
...@@ -25,5 +25,5 @@ Desktop.ini ...@@ -25,5 +25,5 @@ Desktop.ini
/.vagrant /.vagrant
Makefile Makefile
/__pycache__ /__pycache__
/source /docs/source
*.pyc *.pyc
How to use Spindle FEA
===============================
Spindle FEA application is an easy to use tool that can be run either directly from the
command line or from the Abaqus CAE gui interface. Here we discuss
prerequisites and provide a step-by-step guide to running a simple analysis.
Requirements
-------------
1. The application relies on the third party finite element package `Abaqus CAE
<https://www.3ds.com/products-services/simulia/products/abaqus/abaquscae/>`_
by Dassault Systems. Abaqus CAE version 6.11+ should be installed in order to use this application.
No further requirements need to be satisfied for a simple use of the application without modifying
its modules.
2. If, however, the internal modules need to be modified to add some new functionality or alter
the existing one it is recommended to install `Python 2.7
<https://www.python.org/download/releases/2.7/>`_
and `Anaconda
<https://www.anaconda.com/>`_
platform.
Configure and run the analysis
-------------------------------
Run executing python scripts in Abaqus CAE graphical interface
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1. Lunch Abaqus CAE from command line or shortcut on your desktop and close the
``Start Session`` window.
.. figure:: images/GUIstp1.pdf
:target: ../../source/images/GUIstp1.pdf
:align: center
2. Go to ``File`` then to ``Set Work Directory...``
.. figure:: images/GUIstp2.pdf
:target: ../../source/images/GUIstp2.pdf
:align: center
and browse to the root directory of Spindle FEA called ``Spindle``.
3. Configure ``job.py`` file by providing all the essential modelling parameters.
All the spindle geometric and physical parameters should be inserted into a
dictionary ``kwargs``.
4. Modify execution parameters in ``mdb.Job()`` in ``job.py`` file.
.. code-block:: python
:linenos:
mdb.Job(name=name, model=modelname, description='', type=ANALYSIS, atTime=None,
waitMinutes=0, waitHours=0, queue=None, memory=90,
memoryUnits=PERCENTAGE, getMemoryFromAnalysis=True,
explicitPrecision=SINGLE, nodalOutputPrecision=SINGLE, echoPrint=OFF,
modelPrint=OFF, contactPrint=OFF, historyPrint=OFF, userSubroutine='',
scratch='', resultsFormat=ODB, multiprocessingMode=DEFAULT, numCpus=1,
numGPUs=0)
Users may change queueing by changing ``queue`` parameter, memory allocation in % by changing ``memory`` parameter,
precision of the computation in ``explicitPrecision`` and in ``nodalOutputPrecision`` and also request parallelisation of computations
by changing type of threading in ``multiprocessingMode``, number of CPUs in ``numCpus`` and number of GPUs in ``numGPUs``. It is highly
recommended that before changing any of the above parameters you closely read the Abaqus CAE documentation accessible from ``Help`` tab
in Abaqus CAE graphical interface.
5. Run the analysis by going to ``File`` then ``Run Script...`` and selecting ``job.py``.
.. figure:: images/GUIstp3.pdf
:target: ../../source/images/GUIstp3.pdf
:align: center
6. After the analysis has been executed you can see the results by opening a `Job-1.odb` file within Abaqus graphical interface.
The critical buckling loads will also be accessible from ``Job-1.dat`` file. If you renamed the job by changing ``JobName`` parameter in
``job.py`` file then the .odb and .dat files will have different names.
Run from Windows or Linux command line
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1. To run the job from the command line you should first navigate to ``Spindle`` directory using ``cd`` command.
2. Within ``Spindle`` directory you need to open ``job.py`` in your favourite code editing application if you want to
change some default parameters of the analysis.
3. When ready you need to type ``abaqus cae noGUI=job.py`` in the command line and hit enter to start the analysis.
4. After analysis has finished you can open ``Job-1.odb`` in Abaqus GUI or access it via your own python scripts. Same for the ``Job-1.dat`` file.
Explanation of the ``kwargs`` parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The default ``kwargs`` dictionary is presented in the code snippet blow. The defaults may be
easily changed by replacing the values of ``kwargs`` in ``job.py`` with the user defined ones.
.. code-block:: python
:linenos:
" User input parameters "
kwargs =
{'x' : 0,
'y' : 0,
'index' : 0,
'modelname' : 'test',
'assembly' : 0,
'CentrosomeRadius': 0.24,
'CentrosomeLength': 0.48,
'CentrosomeE' : 1500000000.0,
'CentrosomeNu' : 0.3,
'ipMTnumber' : 6,
'lengthInterval' : [2, 5],
'separation' : [0.02876, 0.0414],
'angle' : [96.39, 11.12],
'd' : 0.015,
'D' : 0.025,
'ElasticModulus' : 1500000000.0,
'PoissonRatio' : 0.3,
'spindleLength' : 10,
'Nconnectors' : 10,
'connectorRadius' : 0.005,
'connectorE' : 1500000000.,
'connectorNu' : 0.3,
'aMTnumber' : 20,
'aMTlength' : 2,
'aMTsSpring' : 10,
'groundSpring' : 10,
'StepName' : 'Standard_Buckling',
'NumberOfEigs' : 20,
'CompressiveLoad' : 1,
'JobName' : 'Job-1'}
Here ``modelname`` is the string representing the name of the model,
``CentrosomeRadius`` is a radius of the centrosome or pole in :math:`\mu m`.
``CentrosomeLength`` is a length of the centrosome or pole in :math:`\mu m`.
``CentrosomeE`` is an elastic modulus of centrosome material in :math:`\frac{pN}{\mu m^{2}}`.
``CentrosomeNu`` is a Poisson ratio of the centrosome material. Taken to be :math:`0.3` for the isotropic model.
``ipMTnumber`` is a number of inter-polar microtubules in a bundle. Typically up to :math:`6` in `Anaphase B`.
``lengthInterval`` is defined by the mean value of the Gaussian distribution :math:`\mu_{L} = 5 \mu m` representing the average length of the inter-polar microtubule :math:`L_{p}/2` and the standard deviation :math:`\sigma_{L} = 2 \mu m` of the MT length :math:`L_{m}/2`.
.. _spindle:
.. figure:: images/spindle_html.pdf
:align: center
The model of the whole spindle in anaphase B generated by Spindle FEA with the interpolar distance labeled :math:`L_{p}` and the midzone length labeled :math:`L_{m}`.
The inter-polar distance is the distance between the centrosomes :math:`L_{p}` and the midzone length is the length :math:`L_{m}` of the zone where MTs are coupled by interlinkers and protein motors as shown in :numref:`spindle`.
``separation`` is the distance between two neighbouring MTs in the inter-polar bundle as shown on the cross-sectional view of the spindle in :numref:`midzone`.
.. _midzone:
.. figure:: images/interlinked_zone.pdf
:align: center
The model of the inter-polar bundle of the mitotic spindle generated by Spindle FEA exhibiting right and left pole MTs, interlinked zone, connectors and protein motors as well as separation distance between MTs in a bundle.
It is generally random and by default is defined by the Gaussian distribution with :math:`\mu_{s} = 0.02876 \mu m` and :math:`\sigma_{s} = 0.0414 \mu m` that were calculated from the experimental data [1]_.
.. [1] J. J. Ward, H. Roque, C. Antony, and F. Nedelec.
`Mechanical design principles of a mitotic spindle.`
eLife, 2014.
``angle`` is the the orientation angle :math:`\phi` of the microtubules within the inter-polar bundle as shown in :numref:`MTangle`.
.. _Mtangle:
.. figure:: images/MTangle.pdf
:align: center
The schematic view of the cross-section of the inter-polar bundle of microtubules near pole and in the mid-zone. The green MTs are growing from the left pole while the purple ones are growing from the right pole.
The MT angle is also a defined by a Gaussian distribution with mean and standard deviation taken from experimental data [1]_. The default values are :math:`\mu_{\phi}=96.39^{\circ}` and :math:`\sigma_{\phi}=11.12^{\circ}`.
``d`` is the inner diameter of a microtubule as shown in :numref:`MTangle`. Default value is :math:`d=0.015 \mu m`.
``D`` is the outer diameter of a microtubule as shown in :numref:`MTangle`. The value is :math:`D=0.025 \mu m` according to Ward et al. [2]_ and :math:`D=0.018 \mu m` according to Pampaloni et al. [1]_ The default value is :math:`D=0.025 \mu m`.
``ElasticModulus`` is an elastic modulus of microtubule material. In the simplest case an isotropic model for microtubule is assumed and the default value is :math:`E=1.5 \times 10^{9} \frac{pN}{\mu m^{2}}` [2]_.
.. [2] F. Pampaloni, G. Lattanzi, A. Jonas, T. Surrey, E. Frey, and E-L. Florin.
`Thermal fluctuations of grafted microtubules provide evidence of a
length-dependent persistence length.`
Proceedings of the National Academy of Sciences, 2006.
``PoissonRatio`` is the Poisson ratio of microtubule material. Assumed to be :math:`\nu=0.3` for isotropic model.
``spindleLength`` is the distance between poles of the spindle as shown in :numref:`spindle`. The default value for the late anaphase B is :math:`L_{p}=10 \mu m` [1]_.
``Nconnectors`` is the number of interlinkers and protein motors in the mid-zone (see :numref:`midzone`). The exact number of interlinkers is hard to estimate from the experiments therefore can become
one of the governing parameters of the model. The default value is :math:`10` per microtubule.
``connectorRadius`` is the radius of the cross-link between MTs. The default value is :math:`r=0.005 \mu m`.
``connectorE`` is the elastic modulus of the connector material. The default value is assumed the same as the one for the microtubule :math:`E=1.5 \times 10^{9} \frac{pN}{\mu m^{2}}`.
``connectorNu`` Poisson ratio of the connector material. Assumed :math:`\nu=0.3`.
``aMTnumber`` is the number of astral microtubules to be modelled in a spindle. The default is :math:`20`.
``aMTlength`` is the length of astral MTs which is generally governed by the radius of the cell membrane and the length between cell tips. The default value is :math:`L_{aMT}=2 \mu m` with cell radius :math:`R_{cell}=1.6 \mu m` [1]_ and the cell length :math:`L_{cell}=14.3 \mu m` [1]_.
``aMTsSpring`` is the stiffness of the distributed spring that we employ to model astral microtubule embedding in the surrounding mesh of MT connectors [3]_. The default value is :math:`k = 10 \frac{pN}{\mu m^{2}}`.
.. [3] F. M. Nixon, C. Gutierrez-Caballero, F. E. Hood, D. G. Booth, I. A. Prior,
and S. J. Royle. `The mesh is a network of microtubule connectors that stabilizes
individual kinetochore fibers of the mitotic spindle.` eLife, 2015.
``groundSpring`` is the spring stiffness of the distributed spring that we employ to model inter-polar MT bundle embedding in the mesh of MT connectors [3]_. The default value is :math:`k = 10 \frac{pN}{\mu m^{2}}`.
``StepName`` is the name of the buckling analysis step.
``NumberOfEigs`` is the number of the eigenvalues and, thus, critical buckling loads that need to be calculated. Notice, that as buckling analysis uses subspace algorithm for eigenvalue calculation the execution time will increase dramatically with the number of requested eigenvalues.
The default is 5.
``CompressiveLoad`` is the preload factor that will be used to multiply the eigenvalue to obtain the critical buckling load. It is recommended that this parameter is not changed.
``JobName`` is the name of the job and will be included in all the names of all files produced by analysis. Default is ``Job-1``.
LoadCase package
================
Submodules
----------
LoadCase.Interaction module
---------------------------
.. automodule:: LoadCase.Interaction
:members:
:undoc-members:
:show-inheritance:
LoadCase.InteractionHelpers module
----------------------------------
.. automodule:: LoadCase.InteractionHelpers
:members:
:undoc-members:
:show-inheritance:
LoadCase.LoadsAndBCs module
---------------------------
.. automodule:: LoadCase.LoadsAndBCs
:members:
:undoc-members:
:show-inheritance:
LoadCase.Step module
--------------------
.. automodule:: LoadCase.Step
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: LoadCase
:members:
:undoc-members:
:show-inheritance:
Parts package
=============
Submodules
----------
Parts.GeometryBuilder module
----------------------------
.. automodule:: Parts.GeometryBuilder
:members:
:undoc-members:
:show-inheritance:
Parts.standard\_parts module
----------------------------
.. automodule:: Parts.standard_parts
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: Parts
:members:
:undoc-members:
:show-inheritance:
Objectives of this project
===============================
.. figure:: images/Spindle_image.svg
:align: center
3D Finite element model of the mitotic spindle
\ No newline at end of file
SpindleAssembly package
=======================
Submodules
----------
SpindleAssembly.AddComponents module
------------------------------------
.. automodule:: SpindleAssembly.AddComponents
:members:
:undoc-members:
:show-inheritance:
SpindleAssembly.PositionComponents module
-----------------------------------------
.. automodule:: SpindleAssembly.PositionComponents
:members:
:undoc-members:
:show-inheritance:
SpindleAssembly.PositionConnectors module
-----------------------------------------
.. automodule:: SpindleAssembly.PositionConnectors
:members:
:undoc-members:
:show-inheritance:
SpindleAssembly.PositionIpMTs module
------------------------------------
.. automodule:: SpindleAssembly.PositionIpMTs
:members:
:undoc-members:
:show-inheritance:
SpindleAssembly.assembly\_random module
---------------------------------------
.. automodule:: SpindleAssembly.assembly_random
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: SpindleAssembly
:members:
:undoc-members:
:show-inheritance:
SpindleMesh package
===================
Submodules
----------
SpindleMesh.generate\_mesh module
---------------------------------
.. automodule:: SpindleMesh.generate_mesh
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: SpindleMesh
:members:
:undoc-members:
:show-inheritance:
# -*- coding: utf-8 -*-
#
# Configuration file for the Sphinx documentation builder.
#
# This file does only contain a selection of the most common options. For a
# full list see the documentation:
# http://www.sphinx-doc.org/en/master/config
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
import os
import sys
path = "/Users/Andrico/Documents/One_Drive/OneDrive - University " \
"of Southampton/Buckling/Spindle"
sys.path.insert(0, os.path.abspath(path))
# -- Project information -----------------------------------------------------
project = 'Spindle FEA'
copyright = '2018, Andrii Iakovliev'
author = 'Andrii Iakovliev'
# The short X.Y version
version = '2.0'
# The full version, including alpha/beta/rc tags
release = '1.0.0'
# -- General configuration ---------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#
# needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.coverage',
'sphinx.ext.mathjax',
'sphinx.ext.ifconfig',
'sphinx.ext.viewcode',
'sphinx.ext.githubpages',
'sphinx.ext.napoleon',
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
# The master toctree document.
master_doc = 'index'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path .
exclude_patterns = []
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'sphinx_rtd_theme'
html_theme_path = ["_themes", ]
html_theme_options = {
'canonical_url': '',
'analytics_id': '',
'logo_only': False,
'display_version': True,
'prev_next_buttons_location': 'bottom',
'style_external_links': False,
'vcs_pageview_mode': '',
# Toc options
'collapse_navigation': True,
'sticky_navigation': True,
'navigation_depth': 4,
'includehidden': True,
'titles_only': False
}
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
# html_theme_options = {}
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
# Custom sidebar templates, must be a dictionary that maps document names
# to template names.
#
# The default sidebars (for documents that don't match any pattern) are
# defined by theme itself. Builtin themes are using these templates by
# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
# 'searchbox.html']``.
#
# html_sidebars = {}
# -- Options for HTMLHelp output ---------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = 'FEASpindledoc'
numfig = True
# -- Options for LaTeX output ------------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'FEASpindle.tex', 'FEA Spindle Documentation',
'Andrii Iakovliev', 'manual'),
]
# -- Options for manual page output ------------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'feaspindle', 'FEA Spindle Documentation',
[author], 1)
]
# -- Options for Texinfo output ----------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'FEASpindle', 'FEA Spindle Documentation',
author, 'FEASpindle', 'One line description of project.',
'Miscellaneous'),
]
# -- Extension configuration -------------------------------------------------
\ No newline at end of file
%% Creator: Inkscape inkscape 0.92.2, www.inkscape.org
%% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010
%% Accompanies image file 'GUIstp-1.pdf' (pdf, eps, ps)
%%
%% To include the image in your LaTeX document, write
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics{<filename>.pdf}
%% To scale the image, write
%% \def\svgwidth{<desired width>}
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics[width=<desired width>]{<filename>.pdf}
%%
%% Images with a different path to the parent latex file can
%% be accessed with the `import' package (which may need to be
%% installed) using
%% \usepackage{import}
%% in the preamble, and then including the image with
%% \import{<path to file>}{<filename>.pdf_tex}
%% Alternatively, one can specify
%% \graphicspath{{<path to file>/}}
%%
%% For more information, please see info/svg-inkscape on CTAN:
%% http://tug.ctan.org/tex-archive/info/svg-inkscape
%%
\begingroup%
\makeatletter%
\providecommand\color[2][]{%
\errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}%
\renewcommand\color[2][]{}%
}%
\providecommand\transparent[1]{%
\errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}%
\renewcommand\transparent[1]{}%
}%
\providecommand\rotatebox[2]{#2}%
\ifx\svgwidth\undefined%
\setlength{\unitlength}{1148.00006104bp}%
\ifx\svgscale\undefined%
\relax%
\else%
\setlength{\unitlength}{\unitlength * \real{\svgscale}}%
\fi%
\else%
\setlength{\unitlength}{\svgwidth}%
\fi%
\global\let\svgwidth\undefined%
\global\let\svgscale\undefined%
\makeatother%
\begin{picture}(1,0.54878046)%
\put(0,0){\includegraphics[width=\unitlength,page=1]{GUIstp-1.pdf}}%
\end{picture}%
\endgroup%
docs/source/images/GUIstp-1.png

910 KiB

File deleted
File deleted
File deleted
%% Creator: Inkscape inkscape 0.92.2, www.inkscape.org
%% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010
%% Accompanies image file 'GUIstp3.pdf' (pdf, eps, ps)
%%
%% To include the image in your LaTeX document, write
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics{<filename>.pdf}
%% To scale the image, write
%% \def\svgwidth{<desired width>}
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics[width=<desired width>]{<filename>.pdf}
%%
%% Images with a different path to the parent latex file can
%% be accessed with the `import' package (which may need to be
%% installed) using
%% \usepackage{import}
%% in the preamble, and then including the image with
%% \import{<path to file>}{<filename>.pdf_tex}
%% Alternatively, one can specify
%% \graphicspath{{<path to file>/}}
%%
%% For more information, please see info/svg-inkscape on CTAN:
%% http://tug.ctan.org/tex-archive/info/svg-inkscape
%%
\begingroup%
\makeatletter%
\providecommand\color[2][]{%
\errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}%
\renewcommand\color[2][]{}%
}%
\providecommand\transparent[1]{%
\errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}%
\renewcommand\transparent[1]{}%
}%
\providecommand\rotatebox[2]{#2}%
\ifx\svgwidth\undefined%
\setlength{\unitlength}{1145.00006104bp}%
\ifx\svgscale\undefined%
\relax%
\else%
\setlength{\unitlength}{\unitlength * \real{\svgscale}}%
\fi%
\else%
\setlength{\unitlength}{\svgwidth}%
\fi%
\global\let\svgwidth\undefined%
\global\let\svgscale\undefined%
\makeatother%
\begin{picture}(1,0.54847157)%
\put(0,0){\includegraphics[width=\unitlength,page=1]{GUIstp3.pdf}}%
\end{picture}%
\endgroup%
docs/source/images/GUIstp3.png

320 KiB

docs/source/images/GUIstp4.png

96.8 KiB

File deleted
File deleted
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment