Exemplo n.º 1
0
nodesets['nodesTopRightCorner'][mesh.nodesTopRightCorner()] = 1

# add DOF-numbers after eliminating periodicity
nodesets['dofsPeriodic'] = mesh.dofsPeriodic()[:, 0]

# filename of the HDF5-file
fname = 'paraview_nodesets.hdf5'

# write HDF-file containing the data
with h5py.File(fname, 'w') as data:
    data.file['coor'] = mesh.coor()
    data.file['conn'] = mesh.conn()

    for key, value in nodesets.items():
        data[key] = value

# write XDMF-file with metadata
xdmf = pv.Mesh(
    pv.Connectivity(fname, "/conn", mesh.getElementType(),
                    mesh.conn().shape),
    pv.Coordinates(fname, "/coor",
                   mesh.coor().shape),
)

for key, value in nodesets.items():
    xdmf.push_back(
        pv.Attribute(fname, "/" + key, key, pv.AttributeType.Node,
                     value.shape))

xdmf.write(os.path.splitext(fname)[0] + '.xdmf')
Exemplo n.º 2
0
import h5py, os
import numpy as np
import GooseFEM as gf
import GooseFEM.ParaView.HDF5 as pv

# create mesh object
mesh = gf.Mesh.Hex8.Regular(6, 8, 12)

# filename of the HDF5-file
fname = 'paraview.hdf5'

# write HDF-file containing the data
with h5py.File(fname, 'w') as data:
    data['coor'] = mesh.coor()
    data['conn'] = mesh.conn()

# write XDMF-file with metadata
pv.Mesh(
    pv.Connectivity(fname, "/conn", mesh.getElementType(),
                    mesh.conn().shape),
    pv.Coordinates(fname, "/coor",
                   mesh.coor().shape),
).write(os.path.splitext(fname)[0] + '.xdmf')
Exemplo n.º 3
0
coor = mesh.coor();
conn = mesh.conn();
disp = np.zeros(coor.shape)

# vector definition:
# provides methods to switch between dofval/nodeval/elemvec, or to manipulate a part of them
vector = gf.Vector(conn, mesh.dofs())

# FEM quadrature
elem = gf.Element.Quad4.Quadrature(vector.AsElement(coor))

# open output file
data = h5py.File("output.h5", "w")

# initialise ParaView metadata
xdmf = pv.TimeSeries()

# save mesh to output file
data["/coor"] = coor
data["/conn"] = conn

# define strain history
gamma = np.linspace(0, 1, 100);

# loop over increments
for inc in range(len(gamma)):

  # apply fictitious strain
  for node in range(disp.shape[0]):
    disp[node,0] = gamma[inc] * (coor[node,1] - coor[0,1])
Exemplo n.º 4
0
# create mesh object
mesh = gf.Mesh.Quad4.FineLayer(9,17)

# filename of the HDF5-file
fname = 'paraview.hdf5'

# define element set
elementsMiddleLayer = np.zeros((mesh.nelem()),dtype='int')
elementsMiddleLayer[mesh.elementsMiddleLayer()] = 1

# write HDF-file containing the data
with h5py.File(fname, 'w') as data:
  data['coor'] = mesh.coor()
  data['conn'] = mesh.conn()
  data['elementsMiddleLayer'] = elementsMiddleLayer

# write XDMF-file with metadata
xdmf = pv.Mesh(
  pv.Connectivity(fname, "/conn", mesh.getElementType(), mesh.conn().shape),
  pv.Coordinates(fname, "/coor", mesh.coor().shape),
)

xdmf.push_back(pv.Attribute(
  fname,
  "/elementsMiddleLayer",
  "elementsMiddleLayer",
  pv.AttributeType.Cell,
  elementsMiddleLayer.shape))

xdmf.write(os.path.splitext(fname)[0] + '.xdmf')