- Created the
EasyFEA.FEM.Operatorsmodule, gathering the element-level operators that integrate a form over the Gauss points (issue #43).Bilinear:UV,GradUGradV,GradU_A_GradV,LinearizedElasticity,MassAlongNormal, and the beam operatorsBeamBending,BeamShear,BeamStiffness,BeamMass.Linear:V.NonLinear:SecondPiolaKirchhoffStressTensor,KelvinVoigtDamping,FollowingPressure.- Refactored the simulations to assemble their element matrices through these operators.
- Introduced finite-strain viscosity and active stress in hyperelasticity (issue #42).
- Kelvin-Voigt viscosity
material.eta(large-strainΣ_visco = η·Ė), delivered throughNonLinear.KelvinVoigtDamping, which returns both the damping matrix and the configuration tangent so the gap is closed without touching the time-scheme coefficient mechanism. - Fiber active stress
material.active_stressalong a direction registered withmaterial.Set_active_stress_vec.
- Kelvin-Voigt viscosity
- Added the
CardiacElastoDynamicsexample (MonoVentricular.py): a passive + active hyperelastic left-ventricle simulation reproducing Benchmark 1: monoventricular mechanics of the cardiac elastodynamics benchmark (Comput. Methods Appl. Mech. Engrg.), with analytic andcardiac_benchmark_toolkit(vtu) fiber/sheet sources (issue #42). - Refactored
Construct_local_matrix_systemand madeHyperElasticStateoperate on agroupElem; the velocity is now passed explicitly toKelvinVoigtDampinginstead of being stored on the state (issue #44). - Added
FeArrayreduction methods and anintegratehelper, and fixed aFeArray.broadcastambiguity on per-element tensors viatensor_ndim. - Fixed a shared mutable-default-dictionary bug in the
Save_Iterfunctions that leaked iteration keys across calls and across simulations in the same process. - Fixed bugs in
phaseField._Calc_Sigma_e_pg, in theLinearizedElasticityexamples, ingroupElem._Get_Mapping/Get_pointsInElem(local connectivity), and in theMesherMPI partitioning (snapshot connectivity beforegmsh.partition). - Fixed an
mpi4pydeadlock on plainpythonand apetsc4pydouble-initialization warning. - Updated
Mesher.Mesh_Import_meshto reconstruct physical groups from gmsh entities and to accept ameshOrderargument; renamedwedgetopentainMeshIO.DICT_ELEMTYPE_TO_ENSIGHT. - Documentation: added an
Operatorssection to the FEM API and a "from element operators to the global system" section to the solve-pipeline guide; improved the introduction docstrings of every simulation; referencedCardiacElastoDynamicsin the docs and READMEs.
Full Changelog: v1.10.1...v1.11.0