From 1f0fbd5aaf8d84924851ab9da35dc2622839bbb9 Mon Sep 17 00:00:00 2001 From: Yves Chemisky Date: Wed, 22 Jul 2026 13:00:05 +0200 Subject: [PATCH 1/3] fix micro and test --- .../Micromechanics/multiphase.cpp | 9 +- src/Simulation/Phase/state_variables.cpp | 6 ++ test/CMakeLists.txt | 1 + test/Umats/MIMTP/TMIMTP.cpp | 99 +++++++++++++++++++ 4 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 test/Umats/MIMTP/TMIMTP.cpp diff --git a/src/Continuum_mechanics/Micromechanics/multiphase.cpp b/src/Continuum_mechanics/Micromechanics/multiphase.cpp index 16812c15b..eac117c6d 100755 --- a/src/Continuum_mechanics/Micromechanics/multiphase.cpp +++ b/src/Continuum_mechanics/Micromechanics/multiphase.cpp @@ -86,8 +86,15 @@ void umat_multi(phase_characteristics &phase, const mat &DR, const double &Time, //Initialization if (start) { - + for (int i=0; itangent_mode = simcoon::tangent_continuum; //Run the appropriate constitutive model select_umat_M(phase.sub_phases[i], DR, Time, DTime, ndi, nshr, start, solver_type, tnew_dt); } diff --git a/src/Simulation/Phase/state_variables.cpp b/src/Simulation/Phase/state_variables.cpp index fe24df486..5bed06a94 100755 --- a/src/Simulation/Phase/state_variables.cpp +++ b/src/Simulation/Phase/state_variables.cpp @@ -214,6 +214,7 @@ state_variables::~state_variables() state_variables& state_variables::operator = (const state_variables& sv) //---------------------------------------------------------------------- { + tangent_mode = sv.tangent_mode; Etot = sv.Etot; DEtot = sv.DEtot; etot = sv.etot; @@ -527,6 +528,11 @@ state_variables& state_variables::rotate_l2g(const state_variables& sv, const do state_variables& state_variables::rotate_g2l(const state_variables& sv, const double &psi, const double &theta, const double &phi) //---------------------------------------------------------------------- { + // Configuration travels with the g->l transfer: the solver sets + // tangent_mode on the GLOBAL sv, the kernels read the LOCAL one — without + // this copy the solver's tangent_mode parameter is dead (kernels always + // run the compile-time default). + tangent_mode = sv.tangent_mode; Etot = sv.Etot; DEtot = sv.DEtot; etot = sv.etot; diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index c146ddcee..e87a581d4 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -54,6 +54,7 @@ set(TEST_SRCS test/Umats/HYPER/THYPER.cpp test/Umats/LOG_int/TLOG_int.cpp test/Umats/MIMTN/TMIMTN.cpp + test/Umats/MIMTP/TMIMTP.cpp test/Umats/MIPLN/TMIPLN.cpp test/Umats/UMEXT/TUMEXT.cpp ) diff --git a/test/Umats/MIMTP/TMIMTP.cpp b/test/Umats/MIMTP/TMIMTP.cpp new file mode 100644 index 000000000..e2333deb7 --- /dev/null +++ b/test/Umats/MIMTP/TMIMTP.cpp @@ -0,0 +1,99 @@ +/* This file is part of simcoon. + +simcoon is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +simcoon is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with simcoon. If not, see . + +*/ + +///@file TMIMTP.cpp +///@brief Mori-Tanaka homogenization with a PLASTIC (modular MODUL) matrix. +/// +/// Guards what the all-elastic MIMTN fixture cannot: elastic Lt is +/// tangent-mode invariant, so MIMTN is blind to the tangent family used by +/// the localization. Here the matrix is a MODUL phase (Von Mises + Voce) +/// loaded well past yield, so the strain concentration tensors are built +/// from an evolving elastoplastic Lt. The recorded reference encodes the +/// CONTINUUM-tangent localization (sub-phases pinned to tangent_continuum +/// in umat_multi, per the incremental Mori-Tanaka formulation) — a change +/// of phase tangent family, a broken tangent_mode propagation, or a modular +/// regression inside the micromechanics all shift the strain partition and +/// fail the comparison. + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; +using namespace arma; +using namespace simcoon; + +TEST(TMIMTP, MIMTN_plastic_modular_matrix_solver) +{ + string path_data = "data"; + string path_results = "results"; + string outputfile = "results_job.txt"; + string pathfile = "path.txt"; + string materialfile = "material.dat"; + string sol_essentials = "solver_essentials.inp"; + string sol_control = "solver_control.inp"; + + string umat_name; + unsigned int nprops = 0; + unsigned int nstatev = 0; + vec props; + + double psi_rve = 0.; + double theta_rve = 0.; + double phi_rve = 0.; + + int solver_type = 0; + int corate_type = 0; + double div_tnew_dt_solver = 0.; + double mul_tnew_dt_solver = 0.; + int miniter_solver = 0; + int maxiter_solver = 0; + int inforce_solver = 0; + double precision_solver = 0.; + double lambda_solver = 0.; + + ASSERT_NO_THROW(solver_essentials(solver_type, corate_type, path_data, sol_essentials)) << "Failed to read solver essentials - check if file exists"; + ASSERT_NO_THROW(solver_control(div_tnew_dt_solver, mul_tnew_dt_solver, miniter_solver, maxiter_solver, inforce_solver, precision_solver, lambda_solver, path_data, sol_control)) << "Failed to read solver control - check if file exists"; + + ASSERT_NO_THROW(read_matprops(umat_name, nprops, props, nstatev, psi_rve, theta_rve, phi_rve, path_data, materialfile)) << "Failed to read material properties - check if file exists"; + solver(umat_name, props, nstatev, psi_rve, theta_rve, phi_rve, solver_type, corate_type, div_tnew_dt_solver, mul_tnew_dt_solver, miniter_solver, maxiter_solver, inforce_solver, precision_solver, lambda_solver, path_data, path_results, pathfile, outputfile); + + string path_comparison = "comparison/results_job_global-0.txt"; + string path_outputfile = path_results + "/" + "results_job_global-0.txt"; + + mat C; + C.load(path_comparison); + mat R; + R.load(path_outputfile); + + ASSERT_EQ(C.n_rows, R.n_rows); + ASSERT_EQ(C.n_cols, R.n_cols); + for (unsigned int i=0; i Date: Wed, 22 Jul 2026 14:26:09 +0200 Subject: [PATCH 2/3] Add MIMTP test files and reference results Add test data and reference output for the Umats MIMTP test suite. Files added: comparison/results_job_global-0.txt (reference results), data/Nellipsoids0.dat (ellipsoid/particle definitions), data/material.dat (material parameters and orientation), data/path.txt (test loading path and temperature), data/solver_control.inp (solver control parameters, executable), and data/solver_essentials.inp (solver type and rate). These provide input and expected output for regression tests of the MIMTP umat implementation. --- .../MIMTP/comparison/results_job_global-0.txt | 50 +++++++++++++++++++ testBin/Umats/MIMTP/data/Nellipsoids0.dat | 3 ++ testBin/Umats/MIMTP/data/material.dat | 16 ++++++ testBin/Umats/MIMTP/data/path.txt | 29 +++++++++++ testBin/Umats/MIMTP/data/solver_control.inp | 21 ++++++++ .../Umats/MIMTP/data/solver_essentials.inp | 4 ++ 6 files changed, 123 insertions(+) create mode 100644 testBin/Umats/MIMTP/comparison/results_job_global-0.txt create mode 100644 testBin/Umats/MIMTP/data/Nellipsoids0.dat create mode 100644 testBin/Umats/MIMTP/data/material.dat create mode 100644 testBin/Umats/MIMTP/data/path.txt create mode 100755 testBin/Umats/MIMTP/data/solver_control.inp create mode 100755 testBin/Umats/MIMTP/data/solver_essentials.inp diff --git a/testBin/Umats/MIMTP/comparison/results_job_global-0.txt b/testBin/Umats/MIMTP/comparison/results_job_global-0.txt new file mode 100644 index 000000000..82e96bafc --- /dev/null +++ b/testBin/Umats/MIMTP/comparison/results_job_global-0.txt @@ -0,0 +1,50 @@ +1 1 1 1 0.02 290 0 0 0.0002 -5.53074e-05 -5.53074e-05 2.26992e-21 1.07379e-22 -3.61895e-24 21.5881 1.66533e-16 -1.16573e-15 1.2326e-32 -3.08149e-33 -8.42594e-34 0 0 0 0 +1 1 1 2 0.04 290 0 0 0.0004 -0.000110615 -0.000110615 4.53984e-21 2.14758e-22 -7.2379e-24 43.1762 3.33067e-16 -2.33147e-15 2.46519e-32 -6.16298e-33 -1.68519e-33 0 0 0 0 +1 1 1 3 0.06 290 0 0 0.0006 -0.000165922 -0.000165922 6.80976e-21 3.22137e-22 -1.08569e-23 64.7643 4.44089e-16 -1.33227e-15 2.46519e-32 -1.07852e-32 -2.55186e-33 0 0 0 0 +1 1 1 4 0.08 290 0 0 0.0008 -0.00022123 -0.00022123 9.07969e-21 4.29516e-22 -1.44758e-23 86.3524 6.66134e-16 -4.66294e-15 4.93038e-32 -1.2326e-32 -3.37038e-33 0 0 0 0 +1 1 1 5 0.1 290 0 0 0.001 -0.000276537 -0.000276537 1.13496e-20 5.36895e-22 -1.80948e-23 107.94 3.55271e-15 -2.22045e-15 9.86076e-32 -1.2326e-32 -4.33334e-33 0 0 0 0 +1 1 1 6 0.12 290 0 0 0.0012 -0.000346812 -0.000346386 1.30569e-20 7.39027e-22 1.62316e-22 120.889 4.26658e-07 -4.13775e-07 -8.77999e-17 -1.83838e-17 -1.01527e-17 0 0 0 0 +1 1 1 7 0.14 290 0 0 0.0014 -0.00043416 -0.000433157 1.97207e-20 1.03276e-21 2.67149e-22 125.701 6.24748e-07 -6.07107e-07 -6.57522e-17 -2.03406e-17 -1.02142e-17 0 0 0 0 +1 1 1 8 0.16 290 0 0 0.0016 -0.000521557 -0.000519891 2.52519e-20 1.22778e-21 3.1081e-22 130.508 9.82296e-07 -9.55606e-07 -7.43559e-17 -1.6967e-18 -1.38576e-17 0 0 0 0 +1 1 1 9 0.18 290 0 0 0.0018 -0.000609004 -0.000606591 3.29315e-20 1.38427e-21 4.13673e-22 135.312 1.3235e-06 -1.28804e-06 6.81059e-18 6.02895e-20 -1.23776e-17 0 0 0 0 +1 1 1 10 0.2 290 0 0 0.002 -0.000696499 -0.000693258 4.18641e-20 1.72354e-21 2.04539e-22 140.112 1.6493e-06 -1.60534e-06 1.59373e-17 8.98743e-18 -1.43524e-17 0 0 0 0 +1 1 1 11 0.22 290 0 0 0.0022 -0.000784041 -0.000779891 4.87936e-20 2.19252e-21 2.76704e-22 144.908 1.9606e-06 -1.9084e-06 -7.9735e-18 1.33967e-17 -5.44288e-18 0 0 0 0 +1 1 1 12 0.24 290 0 0 0.0024 -0.000871629 -0.000866492 5.58633e-20 2.08702e-21 9.1238e-23 149.7 2.25822e-06 -2.19802e-06 -4.06531e-18 1.13639e-17 -1.36514e-17 0 0 0 0 +1 1 1 13 0.26 290 0 0 0.0026 -0.000959263 -0.000953063 6.43889e-20 2.40221e-21 6.19231e-23 154.488 2.54294e-06 -2.47498e-06 2.44048e-17 2.26877e-17 -1.94284e-17 0 0 0 0 +1 1 1 14 0.28 290 0 0 0.0028 -0.00104694 -0.0010396 7.17378e-20 2.52319e-21 -1.05945e-22 159.272 2.81547e-06 -2.73999e-06 2.50807e-17 2.14122e-17 -2.53243e-17 0 0 0 0 +1 1 1 15 0.3 290 0 0 0.003 -0.00113466 -0.00112611 7.92838e-20 2.65687e-21 -1.30163e-22 164.053 3.07649e-06 -2.99372e-06 -6.7573e-17 2.57402e-17 -2.84058e-17 0 0 0 0 +1 1 1 16 0.32 290 0 0 0.0032 -0.00122243 -0.0012126 8.73653e-20 2.93764e-21 -7.32456e-23 168.829 3.32663e-06 -3.23677e-06 -1.41217e-16 3.70182e-17 -2.79737e-17 0 0 0 0 +1 1 1 17 0.34 290 0 0 0.0034 -0.00131023 -0.00129905 9.60103e-20 2.95166e-21 1.54052e-22 173.602 3.56648e-06 -3.46974e-06 -1.67288e-16 4.59137e-17 -2.35423e-17 0 0 0 0 +1 1 1 18 0.36 290 0 0 0.0036 -0.00139808 -0.00138548 1.03334e-19 2.97098e-21 1.20836e-23 178.371 3.79659e-06 -3.69317e-06 -2.4198e-16 4.08746e-17 -2.66302e-17 0 0 0 0 +1 1 1 19 0.38 290 0 0 0.0038 -0.00148597 -0.00147188 1.11105e-19 2.85458e-21 -7.2231e-23 183.137 4.01747e-06 -3.90757e-06 -2.98184e-16 3.60298e-17 -3.68419e-17 0 0 0 0 +1 1 1 20 0.4 290 0 0 0.004 -0.00157389 -0.00155825 1.17964e-19 2.94475e-21 7.67714e-23 187.898 4.22962e-06 -4.11342e-06 -3.39857e-16 4.37804e-17 -3.63486e-17 0 0 0 0 +1 1 1 21 0.42 290 0 0 0.0042 -0.00166186 -0.0016446 1.27696e-19 2.82032e-21 1.27568e-22 192.656 4.43348e-06 -4.31116e-06 -3.12271e-16 5.34402e-17 -3.64991e-17 0 0 0 0 +1 1 1 22 0.44 290 0 0 0.0044 -0.00174986 -0.00173093 1.38684e-19 3.03218e-21 7.64384e-23 197.41 4.62948e-06 -4.50121e-06 -2.60648e-16 6.48574e-17 -4.08889e-17 0 0 0 0 +1 1 1 23 0.46 290 0 0 0.0046 -0.00183791 -0.00181723 1.48799e-19 3.03718e-21 1.68065e-22 202.161 5.34317e-06 -5.19405e-06 -2.78945e-16 5.55518e-17 -3.60423e-17 0 0 0 0 +1 1 1 24 0.48 290 0 0 0.0048 -0.00192599 -0.00190351 1.60542e-19 3.22449e-21 3.69319e-22 206.908 6.0319e-06 -5.86246e-06 -3.12418e-16 5.64829e-17 -3.15165e-17 0 0 0 0 +1 1 1 25 0.5 290 0 0 0.005 -0.0020141 -0.00198977 1.69711e-19 3.46132e-21 1.93668e-22 211.651 6.69685e-06 -6.5076e-06 -2.69157e-16 4.57319e-17 -3.37416e-17 0 0 0 0 +1 1 1 26 0.52 290 0 0 0.0052 -0.00210225 -0.002076 1.81865e-19 3.63283e-21 8.40403e-23 216.39 7.33913e-06 -7.13058e-06 -2.15485e-16 4.78298e-17 -4.40743e-17 0 0 0 0 +1 1 1 27 0.54 290 0 0 0.0054 -0.00219044 -0.00216221 1.92046e-19 3.5304e-21 1.21378e-22 221.126 7.95981e-06 -7.73243e-06 -1.24202e-16 4.31001e-17 -4.74233e-17 0 0 0 0 +1 1 1 28 0.56 290 0 0 0.0056 -0.00227866 -0.0022484 2.03149e-19 4.00153e-21 1.83108e-22 225.859 8.55988e-06 -8.31413e-06 -1.59971e-16 4.53523e-17 -3.60695e-17 0 0 0 0 +1 1 1 29 0.58 290 0 0 0.0058 -0.00236691 -0.00233457 2.12168e-19 3.9983e-21 4.52179e-23 230.587 9.14027e-06 -8.8766e-06 -1.87257e-16 3.62792e-17 -4.77905e-17 0 0 0 0 +1 1 1 30 0.6 290 0 0 0.006 -0.0024552 -0.00242072 2.23632e-19 4.06959e-21 8.11622e-23 235.313 9.70188e-06 -9.42072e-06 -1.62467e-16 3.17817e-17 -4.84194e-17 0 0 0 0 +1 1 1 31 0.62 290 0 0 0.0062 -0.00254352 -0.00250685 2.36137e-19 4.18661e-21 -1.61198e-22 240.034 1.02456e-05 -9.94731e-06 -9.4688e-17 3.41514e-17 -6.19754e-17 0 0 0 0 +1 1 1 32 0.64 290 0 0 0.0064 -0.00263187 -0.00259296 2.46888e-19 4.21708e-21 -2.38111e-22 244.752 1.07721e-05 -1.04572e-05 -1.95416e-17 2.90567e-17 -6.40149e-17 0 0 0 0 +1 1 1 33 0.66 290 0 0 0.0066 -0.00272026 -0.00267905 2.57623e-19 3.96561e-21 1.63354e-22 249.467 1.12822e-05 -1.0951e-05 -1.33438e-18 8.13669e-18 -4.22036e-17 0 0 0 0 +1 1 1 34 0.68 290 0 0 0.0068 -0.00280868 -0.00276512 2.69979e-19 4.01853e-21 -3.55131e-24 254.178 1.17766e-05 -1.14295e-05 6.47853e-17 1.74961e-18 -4.99866e-17 0 0 0 0 +1 1 1 35 0.7 290 0 0 0.007 -0.00289713 -0.00285118 2.80593e-19 4.15196e-21 -1.22687e-22 258.885 1.22561e-05 -1.18934e-05 2.4103e-17 8.47406e-18 -6.0288e-17 0 0 0 0 +1 1 1 36 0.72 290 0 0 0.0072 -0.0029856 -0.00293721 2.91121e-19 4.31071e-21 -1.74031e-22 263.589 1.27211e-05 -1.23433e-05 -9.59984e-17 1.83751e-17 -7.06982e-17 0 0 0 0 +1 1 1 37 0.74 290 0 0 0.0074 -0.00307411 -0.00302323 3.02421e-19 3.95662e-21 -9.25158e-23 268.29 1.31725e-05 -1.27798e-05 -6.63364e-17 1.19918e-17 -6.4775e-17 0 0 0 0 +1 1 1 38 0.76 290 0 0 0.0076 -0.00316265 -0.00310924 3.14436e-19 3.75497e-21 1.31942e-22 272.987 1.36106e-05 -1.32034e-05 -3.70582e-17 1.62337e-17 -5.38366e-17 0 0 0 0 +1 1 1 39 0.78 290 0 0 0.0078 -0.00325122 -0.00319522 3.27119e-19 3.94453e-21 1.09612e-23 277.681 1.40361e-05 -1.36146e-05 5.6483e-17 3.11663e-17 -5.2577e-17 0 0 0 0 +1 1 1 40 0.8 290 0 0 0.008 -0.00333982 -0.00328119 3.37883e-19 3.95003e-21 -1.46957e-23 282.371 1.44495e-05 -1.40141e-05 3.5672e-17 3.67672e-17 -5.35661e-17 0 0 0 0 +1 1 1 41 0.82 290 0 0 0.0082 -0.00342845 -0.00336714 3.49441e-19 4.04123e-21 -1.66526e-22 287.058 1.48512e-05 -1.44023e-05 3.30562e-17 3.35194e-17 -6.05737e-17 0 0 0 0 +1 1 1 42 0.84 290 0 0 0.0084 -0.0035171 -0.00345308 3.6224e-19 3.79169e-21 -1.96131e-22 291.741 1.52418e-05 -1.47796e-05 1.16444e-16 2.71077e-17 -5.06112e-17 0 0 0 0 +1 1 1 43 0.86 290 0 0 0.0086 -0.00360578 -0.003539 3.75877e-19 3.81068e-21 -2.41503e-22 296.422 1.56217e-05 -1.51464e-05 1.67622e-16 1.81662e-17 -5.05914e-17 0 0 0 0 +1 1 1 44 0.88 290 0 0 0.0088 -0.00369449 -0.00362491 3.87435e-19 3.9432e-21 -2.57053e-22 301.098 1.59914e-05 -1.55033e-05 1.45747e-16 9.00058e-18 -5.08329e-17 0 0 0 0 +1 1 1 45 0.9 290 0 0 0.009 -0.00378323 -0.0037108 3.98644e-19 4.11423e-21 -3.75115e-22 305.772 1.63511e-05 -1.58505e-05 8.02655e-17 2.21276e-17 -5.56475e-17 0 0 0 0 +1 1 1 46 0.92 290 0 0 0.0092 -0.003872 -0.00379668 4.10796e-19 4.35177e-21 -5.84405e-22 310.442 1.67014e-05 -1.61885e-05 1.32156e-16 3.00511e-17 -6.3007e-17 0 0 0 0 +1 1 1 47 0.94 290 0 0 0.0094 -0.00396079 -0.00388254 4.23248e-19 4.23941e-21 -5.99551e-22 315.109 1.70425e-05 -1.65176e-05 1.99455e-16 2.17485e-17 -6.17932e-17 0 0 0 0 +1 1 1 48 0.96 290 0 0 0.0096 -0.0040496 -0.00396839 4.34415e-19 4.32347e-21 -4.36268e-22 319.772 1.73748e-05 -1.68382e-05 1.85303e-16 1.70417e-17 -5.24882e-17 0 0 0 0 +1 1 1 49 0.98 290 0 0 0.0098 -0.00413845 -0.00405422 4.47938e-19 4.09061e-21 -4.40686e-22 324.432 1.76988e-05 -1.71505e-05 3.43354e-16 -2.54692e-18 -5.00824e-17 0 0 0 0 +1 1 1 50 1 290 0 0 0.01 -0.00422732 -0.00414004 4.61927e-19 3.86743e-21 -2.615e-22 329.089 1.80145e-05 -1.7455e-05 4.15782e-16 -2.12775e-17 -4.63275e-17 0 0 0 0 diff --git a/testBin/Umats/MIMTP/data/Nellipsoids0.dat b/testBin/Umats/MIMTP/data/Nellipsoids0.dat new file mode 100644 index 000000000..1ef42a15f --- /dev/null +++ b/testBin/Umats/MIMTP/data/Nellipsoids0.dat @@ -0,0 +1,3 @@ +Number Coatingof umat save c psi_mat theta_mat phi_mat a1 a2 a3 psi_geom theta_geom phi_geom nprops nstatev props +0 0 MODUL 1 0.7 0 0 0 1 1 1 0. 0. 0. 15 8 0 0 70000 0.3 1e-05 1 0 0 3 0 1 1 100 150 20 +1 0 ELISO 1 0.3 0. 0. 0. 1 1 1 0. 0. 0. 3 1 400000 0.2 0. diff --git a/testBin/Umats/MIMTP/data/material.dat b/testBin/Umats/MIMTP/data/material.dat new file mode 100644 index 000000000..4fe1a0af8 --- /dev/null +++ b/testBin/Umats/MIMTP/data/material.dat @@ -0,0 +1,16 @@ +Material +Name MIMTN +Number_of_material_parameters 5 +Number_of_internal_variables 10000 + +#Orientation +psi 0 +theta 0 +phi 0 + +#Mechancial +P1 2 +P2 0 +P3 20 +P4 20 +P5 0 diff --git a/testBin/Umats/MIMTP/data/path.txt b/testBin/Umats/MIMTP/data/path.txt new file mode 100644 index 000000000..5f60c0841 --- /dev/null +++ b/testBin/Umats/MIMTP/data/path.txt @@ -0,0 +1,29 @@ +#Initial_temperature +290 +#Number_of_blocks +1 + +#Block +1 +#Loading_type +1 +#Control_type(NLGEOM) +1 +#Repeat +1 +#Steps +1 + +#Mode +1 +#Dn_init 1. +#Dn_mini 0.1 +#Dn_inc 0.02 +#time +1 +#Consigne +E 0.01 +S 0 S 0 +S 0 S 0 S 0 +#Consigne_T +T 290 diff --git a/testBin/Umats/MIMTP/data/solver_control.inp b/testBin/Umats/MIMTP/data/solver_control.inp new file mode 100755 index 000000000..1f415796e --- /dev/null +++ b/testBin/Umats/MIMTP/data/solver_control.inp @@ -0,0 +1,21 @@ +div_tnew_dt_solver +0.5 + +mul_tnew_dt_solver +2 + +miniter_solver +10 + +maxiter_solver +100 + +inforce_solver +1 + +precision_solver +1.E-6 + +lambda_solver +10000. + diff --git a/testBin/Umats/MIMTP/data/solver_essentials.inp b/testBin/Umats/MIMTP/data/solver_essentials.inp new file mode 100755 index 000000000..3bfc39f7c --- /dev/null +++ b/testBin/Umats/MIMTP/data/solver_essentials.inp @@ -0,0 +1,4 @@ +Solver_type_0_Newton_tangent_1_RNL +0 +Rate_type +2 \ No newline at end of file From 39d34d23e5c9f910994b37fcf7eef26e96b62636 Mon Sep 17 00:00:00 2001 From: Yves Chemisky Date: Wed, 22 Jul 2026 14:51:13 +0200 Subject: [PATCH 3/3] Enable sccache and Ninja for Windows CI/build Add MSVC dev environment and sccache actions to Windows jobs and enable sccache + Ninja integration. Install ninja in the editable install and CI steps, set SCCACHE_GHA_ENABLED and CMAKE_ARGS/CMAKE_*_LAUNCHER so scikit-build-core/CMake use sccache, and switch the Windows build to the Ninja generator. This speeds Windows builds by enabling compiler caching and ensures the compiler-launcher setting is honored. --- .github/workflows/build.yml | 19 ++++++++++++++++++- .github/workflows/ci.yml | 21 +++++++++++++++++++-- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8ada99197..a61ac27a7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -51,13 +51,30 @@ jobs: - name: Setup uv uses: astral-sh/setup-uv@v7 + - name: MSVC developer environment (Windows) + if: runner.os == 'Windows' + uses: ilammy/msvc-dev-cmd@v1 + + - name: sccache (Windows) + if: runner.os == 'Windows' + uses: mozilla-actions/sccache-action@v0.0.9 + + - name: Enable sccache + Ninja for the editable build (Windows) + if: runner.os == 'Windows' + run: | + # scikit-build-core honors CMAKE_ARGS; the compiler-launcher property + # only works with the Ninja generator (ignored by Visual Studio), so + # the MSVC dev env + ninja (installed below) are required for sccache. + "SCCACHE_GHA_ENABLED=true" | Out-File $env:GITHUB_ENV -Append + "CMAKE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache" | Out-File $env:GITHUB_ENV -Append + - name: Editable install run: | uv venv # --no-build-isolation so the backend in the venv is the one that # actually builds the editable wheel (and so later direct cmake # rebuilds share its build tree). - uv pip install scikit-build-core pybind11 numpy + uv pip install scikit-build-core pybind11 numpy ninja uv pip install -e .[dev] --no-build-isolation - name: Vendor conda BLAS/LAPACK runtime next to the extension (Windows) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e97c47760..d8bbe2866 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,6 +50,21 @@ jobs: environment-file: ${{ matrix.environment-file }} channels: conda-forge,set3mah + - name: MSVC developer environment (Windows) + if: runner.os == 'Windows' + uses: ilammy/msvc-dev-cmd@v1 + + - name: sccache (Windows) + if: runner.os == 'Windows' + uses: mozilla-actions/sccache-action@v0.0.9 + + - name: Enable sccache + Ninja for all Windows builds + if: runner.os == 'Windows' + run: | + pip install ninja + "SCCACHE_GHA_ENABLED=true" | Out-File $env:GITHUB_ENV -Append + "CMAKE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache" | Out-File $env:GITHUB_ENV -Append + - name: Prepare conda environment (Unix) if: runner.os != 'Windows' run: | @@ -71,11 +86,13 @@ jobs: - name: Build (Windows) if: runner.os == 'Windows' run: | - cmake -S . -B build ` + cmake -S . -B build -G Ninja ` -DCMAKE_BUILD_TYPE=Release ` + -DCMAKE_C_COMPILER_LAUNCHER=sccache ` + -DCMAKE_CXX_COMPILER_LAUNCHER=sccache ` -DCMAKE_INSTALL_PREFIX="$env:CONDA_PREFIX/Library" ` -Wno-dev - cmake --build build --config Release + cmake --build build - name: Tests (Unix) if: runner.os != 'Windows'