using improved documentation
This commit is contained in:
parent
3977e230b3
commit
95831e53f6
2
PRIVATE
2
PRIVATE
|
@ -1 +1 @@
|
|||
Subproject commit d58a002b0a43d240f143aee1396fdc766d87a886
|
||||
Subproject commit 156831f7962a1eb965023331a900121c5aee5e55
|
|
@ -164,7 +164,7 @@ class Grid:
|
|||
Returns
|
||||
-------
|
||||
loaded : damask.Grid
|
||||
Geometry representation from file.
|
||||
Grid-based geometry from file.
|
||||
|
||||
"""
|
||||
v = VTK.load(fname if str(fname).endswith('.vtr') else str(fname)+'.vtr')
|
||||
|
@ -198,7 +198,7 @@ class Grid:
|
|||
Returns
|
||||
-------
|
||||
loaded : damask.Grid
|
||||
Geometry representation from file.
|
||||
Grid-based geometry from file.
|
||||
|
||||
"""
|
||||
warnings.warn('Support for ASCII-based geom format will be removed in DAMASK 3.1.0', DeprecationWarning,2)
|
||||
|
@ -294,7 +294,7 @@ class Grid:
|
|||
Returns
|
||||
-------
|
||||
loaded : damask.Grid
|
||||
Geometry representation from file.
|
||||
Grid-based geometry from file.
|
||||
|
||||
"""
|
||||
b = util.DREAM3D_base_group(fname) if base_group is None else base_group
|
||||
|
@ -336,7 +336,7 @@ class Grid:
|
|||
Returns
|
||||
-------
|
||||
new : damask.Grid
|
||||
Geometry representation from values in table.
|
||||
Grid-based geometry from values in table.
|
||||
|
||||
"""
|
||||
cells,size,origin = grid_filters.cellsSizeOrigin_coordinates0_point(table.get(coordinates))
|
||||
|
@ -378,7 +378,7 @@ class Grid:
|
|||
Returns
|
||||
-------
|
||||
new : damask.Grid
|
||||
Geometry representation from tessellation.
|
||||
Grid-based geometry from tessellation.
|
||||
|
||||
"""
|
||||
if periodic:
|
||||
|
@ -432,7 +432,7 @@ class Grid:
|
|||
Returns
|
||||
-------
|
||||
new : damask.Grid
|
||||
Geometry representation from tessellation.
|
||||
Grid-based geometry from tessellation.
|
||||
|
||||
"""
|
||||
coords = grid_filters.coordinates0_point(cells,size).reshape(-1,3)
|
||||
|
@ -510,7 +510,7 @@ class Grid:
|
|||
Returns
|
||||
-------
|
||||
new : damask.Grid
|
||||
Geometry representation defined by a minimal surface.
|
||||
Grid-based geometry from definition of minimal surface.
|
||||
|
||||
Notes
|
||||
-----
|
||||
|
@ -635,7 +635,7 @@ class Grid:
|
|||
Returns
|
||||
-------
|
||||
updated : damask.Grid
|
||||
Updated geometry representation.
|
||||
Updated grid-based geometry.
|
||||
|
||||
"""
|
||||
# radius and center
|
||||
|
@ -680,7 +680,7 @@ class Grid:
|
|||
Returns
|
||||
-------
|
||||
updated : damask.Grid
|
||||
Updated geometry representation.
|
||||
Updated grid-based geometry.
|
||||
|
||||
"""
|
||||
valid = ['x','y','z']
|
||||
|
@ -717,7 +717,7 @@ class Grid:
|
|||
Returns
|
||||
-------
|
||||
updated : damask.Grid
|
||||
Updated geometry representation.
|
||||
Updated grid-based geometry.
|
||||
|
||||
"""
|
||||
valid = ['x','y','z']
|
||||
|
@ -747,7 +747,7 @@ class Grid:
|
|||
Returns
|
||||
-------
|
||||
updated : damask.Grid
|
||||
Updated geometry representation.
|
||||
Updated grid-based geometry.
|
||||
|
||||
"""
|
||||
return Grid(material = ndimage.interpolation.zoom(
|
||||
|
@ -780,7 +780,7 @@ class Grid:
|
|||
Returns
|
||||
-------
|
||||
updated : damask.Grid
|
||||
Updated geometry representation.
|
||||
Updated grid-based geometry.
|
||||
|
||||
"""
|
||||
def mostFrequent(arr,selection=None):
|
||||
|
@ -811,7 +811,7 @@ class Grid:
|
|||
Returns
|
||||
-------
|
||||
updated : damask.Grid
|
||||
Updated geometry representation.
|
||||
Updated grid-based geometry.
|
||||
|
||||
"""
|
||||
_,renumbered = np.unique(self.material,return_inverse=True)
|
||||
|
@ -837,7 +837,7 @@ class Grid:
|
|||
Returns
|
||||
-------
|
||||
updated : damask.Grid
|
||||
Updated geometry representation.
|
||||
Updated grid-based geometry.
|
||||
|
||||
"""
|
||||
if fill is None: fill = np.nanmax(self.material) + 1
|
||||
|
@ -877,7 +877,7 @@ class Grid:
|
|||
Returns
|
||||
-------
|
||||
updated : damask.Grid
|
||||
Updated geometry representation.
|
||||
Updated grid-based geometry.
|
||||
|
||||
"""
|
||||
if offset is None: offset = 0
|
||||
|
@ -914,7 +914,7 @@ class Grid:
|
|||
Returns
|
||||
-------
|
||||
updated : damask.Grid
|
||||
Updated geometry representation.
|
||||
Updated grid-based geometry.
|
||||
|
||||
"""
|
||||
def mp(entry,mapper):
|
||||
|
@ -937,7 +937,7 @@ class Grid:
|
|||
Returns
|
||||
-------
|
||||
updated : damask.Grid
|
||||
Updated geometry representation.
|
||||
Updated grid-based geometry.
|
||||
|
||||
"""
|
||||
a = self.material.flatten(order='F')
|
||||
|
@ -977,7 +977,7 @@ class Grid:
|
|||
Returns
|
||||
-------
|
||||
updated : damask.Grid
|
||||
Updated geometry representation.
|
||||
Updated grid-based geometry.
|
||||
|
||||
"""
|
||||
def tainted_neighborhood(stencil,trigger):
|
||||
|
|
|
@ -277,6 +277,7 @@ class Result:
|
|||
-------
|
||||
increments : list of ints
|
||||
Increment number of all increments within the given bounds.
|
||||
|
||||
"""
|
||||
# compatibility hack
|
||||
ln = 3 if self.version_minor < 12 else 10
|
||||
|
@ -303,6 +304,7 @@ class Result:
|
|||
-------
|
||||
times : list of float
|
||||
Simulation time of all increments within the given bounds.
|
||||
|
||||
"""
|
||||
selected = []
|
||||
for i,time in enumerate(self.times):
|
||||
|
|
|
@ -24,7 +24,7 @@ class Rotation:
|
|||
- Euler angle triplets are implemented using the Bunge convention,
|
||||
with angular ranges of [0,2π], [0,π], [0,2π].
|
||||
- The rotation angle ω is limited to the interval [0,π].
|
||||
- The real part of a quaternion is positive, Re(q) > 0
|
||||
- The real part of a quaternion is positive, Re(q) ≥ 0
|
||||
- P = -1 (as default).
|
||||
|
||||
Examples
|
||||
|
|
|
@ -3,7 +3,6 @@ import multiprocessing as mp
|
|||
from pathlib import Path
|
||||
|
||||
import numpy as np
|
||||
import numpy.ma as ma
|
||||
import vtk
|
||||
from vtk.util.numpy_support import numpy_to_vtk as np_to_vtk
|
||||
from vtk.util.numpy_support import numpy_to_vtkIdTypeArray as np_to_vtkIdTypeArray
|
||||
|
@ -51,6 +50,11 @@ class VTK:
|
|||
origin : iterable of float, len (3), optional
|
||||
Spatial origin coordinates.
|
||||
|
||||
Returns
|
||||
-------
|
||||
new : damask.VTK
|
||||
VTK-based geometry without nodal or cell data.
|
||||
|
||||
"""
|
||||
vtk_data = vtk.vtkRectilinearGrid()
|
||||
vtk_data.SetDimensions(*(np.array(grid)+1))
|
||||
|
@ -68,7 +72,7 @@ class VTK:
|
|||
"""
|
||||
Create VTK of type vtk.vtkUnstructuredGrid.
|
||||
|
||||
This is the common type for FEM solver results.
|
||||
This is the common type for mesh solver results.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
|
@ -80,6 +84,11 @@ class VTK:
|
|||
cell_type : str
|
||||
Name of the vtk.vtkCell subclass. Tested for TRIANGLE, QUAD, TETRA, and HEXAHEDRON.
|
||||
|
||||
Returns
|
||||
-------
|
||||
new : damask.VTK
|
||||
VTK-based geometry without nodal or cell data.
|
||||
|
||||
"""
|
||||
vtk_nodes = vtk.vtkPoints()
|
||||
vtk_nodes.SetData(np_to_vtk(nodes))
|
||||
|
@ -110,6 +119,11 @@ class VTK:
|
|||
points : numpy.ndarray of shape (:,3)
|
||||
Spatial position of the points.
|
||||
|
||||
Returns
|
||||
-------
|
||||
new : damask.VTK
|
||||
VTK-based geometry without nodal or cell data.
|
||||
|
||||
"""
|
||||
N = points.shape[0]
|
||||
vtk_points = vtk.vtkPoints()
|
||||
|
@ -140,6 +154,11 @@ class VTK:
|
|||
Name of the vtk.vtkDataSet subclass when opening a .vtk file.
|
||||
Valid types are vtkRectilinearGrid, vtkUnstructuredGrid, and vtkPolyData.
|
||||
|
||||
Returns
|
||||
-------
|
||||
loaded : damask.VTK
|
||||
VTK-based geometry from file.
|
||||
|
||||
"""
|
||||
if not os.path.isfile(fname): # vtk has a strange error handling
|
||||
raise FileNotFoundError(f'no such file: {fname}')
|
||||
|
@ -246,7 +265,7 @@ class VTK:
|
|||
raise ValueError('No label defined for numpy.ndarray')
|
||||
|
||||
N_data = data.shape[0]
|
||||
data_ = np.where(data.mask,data.fill_value,data) if isinstance(data,ma.MaskedArray) else\
|
||||
data_ = np.where(data.mask,data.fill_value,data) if isinstance(data,np.ma.MaskedArray) else\
|
||||
data
|
||||
d = np_to_vtk((data_.astype(np.single) if data_.dtype in [np.double, np.longdouble] else
|
||||
data_).reshape(N_data,-1),deep=True) # avoid large files
|
||||
|
@ -277,6 +296,11 @@ class VTK:
|
|||
label : str
|
||||
Data label.
|
||||
|
||||
Returns
|
||||
-------
|
||||
data : numpy.ndarray
|
||||
Data stored under the given label.
|
||||
|
||||
"""
|
||||
cell_data = self.vtk_data.GetCellData()
|
||||
for a in range(cell_data.GetNumberOfArrays()):
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
"""
|
||||
Filters for operations on regular grids.
|
||||
|
||||
Notes
|
||||
-----
|
||||
The grids are defined as (x,y,z,...) where x is fastest and z is slowest.
|
||||
This convention is consistent with the layout in grid vtr files.
|
||||
|
||||
|
@ -263,6 +261,11 @@ def cellsSizeOrigin_coordinates0_point(coordinates0,ordered=True):
|
|||
Expect coordinates0 data to be ordered (x fast, z slow).
|
||||
Defaults to True.
|
||||
|
||||
Returns
|
||||
-------
|
||||
DNA : tuple with 3 numpy.ndarray of shape (3)
|
||||
Information to reconstruct grid: cells, size, origin.
|
||||
|
||||
"""
|
||||
coords = [_np.unique(coordinates0[:,i]) for i in range(3)]
|
||||
mincorner = _np.array(list(map(min,coords)))
|
||||
|
@ -415,6 +418,11 @@ def cellsSizeOrigin_coordinates0_node(coordinates0,ordered=True):
|
|||
Expect coordinates0 data to be ordered (x fast, z slow).
|
||||
Defaults to True.
|
||||
|
||||
Returns
|
||||
-------
|
||||
DNA : tuple with 3 numpy.ndarray of shape (3)
|
||||
Information to reconstruct grid: cells, size, origin.
|
||||
|
||||
"""
|
||||
coords = [_np.unique(coordinates0[:,i]) for i in range(3)]
|
||||
mincorner = _np.array(list(map(min,coords)))
|
||||
|
@ -452,6 +460,7 @@ def point_to_node(cell_data):
|
|||
-------
|
||||
node_data : numpy.ndarray of shape (:,:,:,...)
|
||||
Data defined on the nodes of a periodic grid.
|
||||
|
||||
"""
|
||||
n = ( cell_data + _np.roll(cell_data,1,(0,1,2))
|
||||
+ _np.roll(cell_data,1,(0,)) + _np.roll(cell_data,1,(1,)) + _np.roll(cell_data,1,(2,))
|
||||
|
@ -491,6 +500,11 @@ def coordinates0_valid(coordinates0):
|
|||
coordinates0 : numpy.ndarray
|
||||
Array of undeformed cell coordinates.
|
||||
|
||||
Returns
|
||||
-------
|
||||
valid : bool
|
||||
Wheter the coordinates lie on a regular grid.
|
||||
|
||||
"""
|
||||
try:
|
||||
cellsSizeOrigin_coordinates0_point(coordinates0,ordered=True)
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
"""
|
||||
Finite-strain continuum mechanics.
|
||||
|
||||
Notes
|
||||
-----
|
||||
All routines operate on numpy.ndarrays of shape (...,3,3).
|
||||
|
||||
"""
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
"""Tools to control the various solvers."""
|
||||
"""Run simulations directly from python."""
|
||||
|
||||
from ._marc import Marc # noqa
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
"""
|
||||
Tensor operations.
|
||||
Tensor mathematics.
|
||||
|
||||
Notes
|
||||
-----
|
||||
This is not a tensor class, but a collection of routines
|
||||
to operate on numpy.ndarrays of shape (...,3,3).
|
||||
All routines operate on numpy.ndarrays of shape (...,3,3).
|
||||
|
||||
"""
|
||||
|
||||
|
|
Loading…
Reference in New Issue