Skip to content

Commit 1a4fc68

Browse files
committed
Fix Issue #182
1 parent f1ac025 commit 1a4fc68

4 files changed

Lines changed: 40 additions & 3 deletions

File tree

docs/web/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ if(MGIS_HAVE_PANDOC)
6969
mgis_pandoc_generate_html_page(release-notes-1.0.2 "--toc" "--toc-depth=3")
7070
mgis_pandoc_generate_html_page(release-notes-1.1 "--toc" "--toc-depth=3")
7171
mgis_pandoc_generate_html_page(release-notes-1.1.1 "--toc" "--toc-depth=3")
72+
mgis_pandoc_generate_html_page(release-notes-1.1.2 "--toc" "--toc-depth=3")
7273
mgis_pandoc_generate_html_page(release-notes-1.2 "--toc" "--toc-depth=3")
7374
mgis_pandoc_generate_html_page(release-notes-1.2.1 "--number-sections" "--toc" "--toc-depth=3")
7475
mgis_pandoc_generate_html_page(release-notes-1.2.2 "--number-sections" "--toc" "--toc-depth=3")

docs/web/mgis-template.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@
8888
<ul>
8989
<li><a href="release-notes-1.1.html">Version 1.1</a></li>
9090
<li><a href="release-notes-1.1.1.html">Version 1.1.1</a></li>
91+
<li><a href="release-notes-1.1.2.html">Version 1.1.2</a></li>
9192
</ul>
9293
</li>
9394
<li><a>Version 1.2.x</a>

docs/web/release-notes-1.1.2.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
title: MFrontGenericInterfaceSupport Version 1.1.2
3+
author: Thomas Helfer
4+
date: 2025
5+
lang: en-EN
6+
numbersections: true
7+
documentclass: article
8+
from: markdown+tex_math_single_backslash
9+
geometry:
10+
- margin=2cm
11+
papersize: a4
12+
link-citations: true
13+
colorlinks: true
14+
figPrefixTemplate: "$$i$$"
15+
tabPrefixTemplate: "$$i$$"
16+
secPrefixTemplate: "$$i$$"
17+
eqnPrefixTemplate: "($$i$$)"
18+
bibliography: bibliography.bib
19+
---
20+
21+
# Issues fixed
22+
23+
## Issue #182: `mgis::behaviour::update` does not handle the case when a multi-components material property or external state variable has been initialized by uniform values and is updated by non-uniform values
24+
25+
For more details, see <https://github.com/thelfer/MFrontGenericInterfaceSupport/issues/182>.

src/MaterialStateManager.cxx

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -303,8 +303,8 @@ namespace mgis::behaviour {
303303
std::copy(from.begin(), from.end(), to.begin());
304304
}; // end update_span
305305
auto update_field_holder =
306-
[&check_size](MaterialStateManager::FieldHolder& to,
307-
const MaterialStateManager::FieldHolder& from) {
306+
[&o, &check_size](MaterialStateManager::FieldHolder& to,
307+
const MaterialStateManager::FieldHolder& from) {
308308
if (std::holds_alternative<mgis::real>(from)) {
309309
to = std::get<mgis::real>(from);
310310
} else if (std::holds_alternative<std::vector<mgis::real>>(from)) {
@@ -317,6 +317,11 @@ namespace mgis::behaviour {
317317
} else if (std::holds_alternative<std::vector<mgis::real>>(to)) {
318318
// reuse existing memory
319319
auto& to_v = std::get<std::vector<mgis::real>>(to);
320+
if (to_v.size() != from_v.size()) {
321+
if (to_v.size() * o.n == from_v.size()) {
322+
to_v.resize(from_v.size());
323+
}
324+
}
320325
check_size(from_v.size(), to_v.size());
321326
std::copy(from_v.begin(), from_v.end(), to_v.begin());
322327
} else {
@@ -332,7 +337,12 @@ namespace mgis::behaviour {
332337
std::copy(from_v.begin(), from_v.end(), to_v.begin());
333338
} else if (std::holds_alternative<std::vector<mgis::real>>(to)) {
334339
// reuse existing memory
335-
auto to_v = std::get<std::vector<mgis::real>>(to);
340+
auto& to_v = std::get<std::vector<mgis::real>>(to);
341+
if (to_v.size() != from_v.size()) {
342+
if (to_v.size() * o.n == from_v.size()) {
343+
to_v.resize(from_v.size());
344+
}
345+
}
336346
check_size(from_v.size(), to_v.size());
337347
std::copy(from_v.begin(), from_v.end(), to_v.begin());
338348
} else {

0 commit comments

Comments
 (0)