Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
4668d31
Neohookean enzyme test
Jun 12, 2025
286f982
new method and old method updates
Jan 23, 2026
5afc035
updated mortar contact
Jan 30, 2026
d75e26f
Merge branch '2d_contact_method' into feature/ebchin/smooth-mortar-pl…
ebchin Feb 2, 2026
0b464dd
add base class
ebchin Jan 29, 2026
16d2432
initial templated mortar class
ebchin Jan 29, 2026
ac22d65
use tribol::MeshData and fix warnings
ebchin Feb 2, 2026
9208f93
formatting
ebchin Feb 2, 2026
b82cccf
add a new diagonalMatrix() method
ebchin Feb 4, 2026
8552811
implement adapter for 2d smooth contact
ebchin Feb 4, 2026
3acf423
Merge branch 'develop' into feature/ebchin/smooth-mortar-plumbing
ebchin Feb 4, 2026
8a6c42a
bugfixes and add energy method
ebchin Feb 4, 2026
7167e03
add factory for creating formulations
ebchin Feb 4, 2026
897b625
add formulation hooks for coupling scheme
ebchin Feb 4, 2026
764e38a
add ContactFormulation hooks
ebchin Feb 4, 2026
b6033e3
add ENERGY_MORTAR
ebchin Feb 4, 2026
893736c
update file list
ebchin Feb 4, 2026
ca8480d
add an example and test
ebchin Feb 4, 2026
2b3c8f1
make test 2d and add debug prints
ebchin Feb 6, 2026
136b8c4
get rid of mpi wait for debugging
ebchin Feb 6, 2026
a9ca63c
test cleanup
ebchin Feb 6, 2026
c86c39d
remove unneeded calls
ebchin Feb 6, 2026
4899cbc
cleanup to work with changes to method
ebchin Feb 6, 2026
608d107
various bugfixes and cleanup
ebchin Feb 6, 2026
b3bf93a
add options output for debug
ebchin Feb 6, 2026
22b4451
Merge branch 'feature/ebchin/hypreparmatrix-wrapper' into feature/ebc…
ebchin Feb 11, 2026
25818d8
switch to new ParSparseMat and ParVector
ebchin Feb 11, 2026
4553d3c
Merge branch 'feature/ebchin/hypreparmatrix-wrapper' into feature/ebc…
ebchin Feb 11, 2026
a05c1f8
simplify interface return types
ebchin Feb 12, 2026
d338766
Merge branch 'feature/ebchin/hypreparmatrix-wrapper' into feature/ebc…
ebchin Feb 12, 2026
0209f68
formatting
ebchin Feb 12, 2026
3e97826
add more TRIBOL_USE_ENZYME guards; new API functions
ebchin Feb 12, 2026
cc61686
fix new vs free issues
ebchin Feb 12, 2026
f7d078f
fix ambiguous operator
ebchin Feb 12, 2026
f9875e2
bugfixes
ebchin Feb 12, 2026
ed4a366
changes
Feb 4, 2026
995c853
Patch test added
Feb 12, 2026
42673b4
Patch Test added
Feb 12, 2026
8008d15
fix leak
ebchin Feb 12, 2026
b9a3eb7
update file list
ebchin Feb 12, 2026
2fd1af3
formatting
ebchin Feb 12, 2026
9f80592
test/example consistency updates
ebchin Feb 12, 2026
6caac3b
force submesh and jacobian data for ENERGY_MORTAR
ebchin Feb 12, 2026
4f108a5
backup defs when mfem is built without enzyme
ebchin Feb 13, 2026
b7e090b
more energy mortar checks
ebchin Feb 13, 2026
8ba043c
add option for non-tied contact
ebchin Feb 13, 2026
00c2a6e
Merge branch 'feature/ebchin/simplified-jacobian-xfers' into feature/…
ebchin Feb 13, 2026
029e711
start using getMfemJacobian
ebchin Feb 13, 2026
4f9163b
assemble element contribs directly into ComputedElementData
ebchin Feb 14, 2026
3889556
add a wrapper class for element contributions
ebchin Feb 14, 2026
95a3013
apply jacobian contribution wrapper
ebchin Feb 14, 2026
4f84afd
fixed smoothing issue
Feb 23, 2026
8a9b850
more changes
Feb 23, 2026
4d785e5
running tests
Mar 7, 2026
e80ab60
test adde
Mar 9, 2026
9103511
size empty blocks correctly
ebchin Mar 12, 2026
b37c163
fix some bugs
ebchin Mar 12, 2026
16b2ca8
formatting
ebchin Mar 12, 2026
b394f71
temp workaround for axom Array issue
ebchin Mar 12, 2026
df5ae07
Merge branch 'feature/ebchin/smooth-mortar-plumbing' of github.com:LL…
Mar 13, 2026
7d99570
added switch for enzyme quadrature
Mar 25, 2026
a973d48
changes
Mar 25, 2026
1df3d91
merged changes
Mar 25, 2026
ed2f3ab
Added seperate LM patch test
Mar 26, 2026
3bb87f3
Merge branch 'feature/ebchin/smooth-mortar-plumbing' of github.com:LL…
Mar 26, 2026
fd866c2
added Finite diff file
Apr 1, 2026
ca2cebf
finite diff test
Apr 6, 2026
aa2aa43
finite diff test and cleaned code
Apr 9, 2026
9af1356
cleaned code
Apr 9, 2026
497f967
fixed issues with finite diff test and optimzed code
Apr 10, 2026
4aaee17
finalized changes for pr
Apr 10, 2026
b9852f9
Merge branch 'develop' into feature/ebchin/smooth-mortar-plumbing
Apr 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ set( contact_examples
common_plane_gpu.cpp
common_plane.cpp
mortar_lm_patch_test.cpp
step_1_lobatto.cpp
)


Expand Down Expand Up @@ -100,6 +101,7 @@ if ( BUILD_REDECOMP )

set( examples
mfem_mortar_lm_patch.cpp
mfem_mortar_energy_patch.cpp
mfem_common_plane.cpp
jacobian_transfer_comparison.cpp
)
Expand Down
79 changes: 79 additions & 0 deletions src/examples/energy_and_force.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/usr/WS2/lutz23/tribal/repo/src/examples\n",
"['energy_and_force.ipynb']\n"
]
},
{
"ename": "FileNotFoundError",
"evalue": "[Errno 2] No such file or directory: '/usr/WS2/lutz23/tribal/repo/src/examples/energy1.csv'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-8-db823b6c9dfb>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0msteps\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menergies\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 10\u001b[0;31m \u001b[0;32mwith\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcsv_file\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"r\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 11\u001b[0m \u001b[0mreader\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcsv\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreader\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 12\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mrow\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mreader\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: '/usr/WS2/lutz23/tribal/repo/src/examples/energy1.csv'"
]
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"import csv\n",
"import os\n",
"print(os.getcwd())\n",
"print([f for f in os.listdir() if 'energy' in f.lower()])\n",
"\n",
"csv_file = \"/usr/WS2/lutz23/tribal/repo/src/examples/energy1.csv\"\n",
"\n",
"steps, energies = [], []\n",
"with open(csv_file, \"r\") as f:\n",
" reader = csv.reader(f)\n",
" for row in reader:\n",
" steps.append(int(row[0]))\n",
" energies.append(float(row[1]))\n",
"\n",
"fig, ax = plt.subplots(figsize=(10, 5))\n",
"ax.plot(steps, energies, color=\"steelblue\", linewidth=2)\n",
"ax.axvline(x=11, color=\"red\", linestyle=\"--\", linewidth=1, label=\"Contact onset (step 11)\")\n",
"ax.set_xlabel(\"Step (i)\", fontsize=12)\n",
"ax.set_ylabel(\"Contact Energy\", fontsize=12)\n",
"ax.set_title(\"Contact Energy vs. Step\", fontsize=14)\n",
"ax.legend()\n",
"ax.grid(True, alpha=0.3)\n",
"plt.tight_layout()\n",
"plt.savefig(\"contact_energy.png\", dpi=150)\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Loading