Comments (3)
from felupe.
Try to use a minimal benchmark.
import felupe as fem
mesh = fem.Cube(n=21)
region = fem.RegionHexahedron(mesh)
field = fem.FieldContainer([fem.Field(region, dim=3)])
umat = fem.NeoHooke(mu=1, bulk=2)
solid = fem.SolidBody(umat=umat, field=field)
with
%timeit solid.assemble.matrix()
This gives 2.5 s (main) vs. 900 ms!!
from felupe.
Let's use a more low-level benchmark.
import felupe as fem
mesh = fem.Cube(n=21)
region = fem.RegionHexahedron(mesh)
field = fem.FieldContainer([fem.Field(region, dim=3)])
umat = fem.NeoHooke(mu=1, bulk=2)
fun = umat.hessian(field.extract())
form = fem.IntegralForm(fun, field, region.dV, u=field)
values = form.integrate()
matrix = form.assemble(values)
# %timeit form.integrate()
# %timeit form.assemble(values)
1.8 s (main) vs. 380 ms
Something has changed in assembly.IntegralFormCartesian
. The dhdX
-arrays of the region are not C-contiguous anymore. That slows down the einsum-evaluation.
form.u[0].region.dhdX.flags
Out[25]:
C_CONTIGUOUS : False
F_CONTIGUOUS : False
OWNDATA : True
WRITEABLE : True
ALIGNED : True
WRITEBACKIFCOPY : False
from felupe.
Related Issues (20)
- Prepare for Numpy 2.0
- Enhance the performance of uniform grid meshes
- `FormItem()` needs an `update()` method
- Include some hello-world lines of code
- Rubber roller compacting analysis: contact pressure plot HOT 19
- Formula broken in Jupyter HOT 3
- Anisotropic material & composites laminate modeling HOT 1
- `MultiPointContact`: The `skip`-argument is ignored HOT 2
- 🌍Call for translators in FElupe official document🌍 HOT 3
- Compaction rubber roller analysis issue (with inear isotropic material assumption) HOT 1
- Mixed-field formulations with multiple solid bodies
- `MultiPointContact` with custom rigid edge / surface HOT 2
- Items: Add attributes for kind of virtual work (internal or external)
- Ex.09: The curve stops before the snap-through
- Isolate the submodules
- Import `pyvista.UnstructuredGrid` as `MeshContainer`? HOT 2
- Write boundary tags to the XDMF result file
- Ex. Engine Mount: re-formulate as "third medium contact" HOT 1
- Memory Leak: Massive RAM increase due to repeated `FieldContainer.imshow()`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from felupe.