Skip to content

Commit 3261926

Browse files
committed
Synchronize with TFEL-3.4.1 release and later
1 parent 884c283 commit 3261926

27 files changed

Lines changed: 1360 additions & 509 deletions

bindings/c/include/MGIS/Behaviour/MaterialDataManager.h

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,15 @@ MGIS_C_EXPORT mgis_status mgis_bv_create_material_data_manager_initializer(
5757
MGIS_C_EXPORT
5858
mgis_status mgis_bv_material_data_manager_initializer_bind_tangent_operator(
5959
mgis_bv_MaterialDataManagerInitializer*, mgis_real* const, mgis_size_type);
60+
/*!
61+
* \brief bind the speed of sound to the given array
62+
* \param[in,out] d: initializer
63+
* \param[in] p: pointer to a memory area meant to store the speed of sound values
64+
* \param[in] s: size of the memory area
65+
*/
66+
MGIS_C_EXPORT
67+
mgis_status mgis_bv_material_data_manager_initializer_bind_speed_of_sound(
68+
mgis_bv_MaterialDataManagerInitializer*, mgis_real* const, mgis_size_type);
6069
/*!
6170
* \brief set the state at the beginning of the time step
6271
* \param[out] s: pointer to a pointer to the state initializer
@@ -102,6 +111,52 @@ MGIS_C_EXPORT mgis_status mgis_bv_create_material_data_manager_with_initializer(
102111
const mgis_bv_Behaviour* const,
103112
const mgis_size_type,
104113
const mgis_bv_MaterialDataManagerInitializer* const);
114+
/*!
115+
* \param[in] d: material data manager
116+
* \param[in] b: boolean value
117+
*/
118+
MGIS_C_EXPORT mgis_status mgis_bv_material_data_manager_set_thread_safe(
119+
mgis_bv_MaterialDataManager*, const mgis_size_type);
120+
/*!
121+
* \param[in] d: material data manager
122+
*/
123+
MGIS_C_EXPORT mgis_status
124+
mgis_bv_material_data_manager_allocate_array_of_tangent_operator_blocks(
125+
mgis_bv_MaterialDataManager* const);
126+
/*!
127+
* \param[in] d: material data manager
128+
* \param[in] p: pointer to a memory buffer
129+
* \param[in] s: size of the a memory buffer
130+
*/
131+
MGIS_C_EXPORT mgis_status
132+
mgis_bv_material_data_manager_use_external_array_of_tangent_operator_blocks(
133+
mgis_bv_MaterialDataManager* const, mgis_real* const, const mgis_size_type);
134+
/*!
135+
* \param[in] d: material data manager
136+
*/
137+
MGIS_C_EXPORT mgis_status
138+
mgis_bv_material_data_manager_release_array_of_tangent_operator_blocks(
139+
mgis_bv_MaterialDataManager*const);
140+
/*!
141+
* \param[in] d: material data manager
142+
*/
143+
MGIS_C_EXPORT mgis_status
144+
mgis_bv_material_data_manager_allocate_array_of_speed_of_sounds(
145+
mgis_bv_MaterialDataManager*const);
146+
/*!
147+
* \param[in] d: material data manager
148+
* \param[in] p: pointer to a memory buffer
149+
* \param[in] s: size of the a memory buffer
150+
*/
151+
MGIS_C_EXPORT mgis_status
152+
mgis_bv_material_data_manager_use_external_array_of_speed_of_sounds(
153+
mgis_bv_MaterialDataManager* const, mgis_real* const, const mgis_size_type);
154+
/*!
155+
* \param[in] d: material data manager
156+
*/
157+
MGIS_C_EXPORT mgis_status
158+
mgis_bv_material_data_manager_release_array_of_speed_of_sounds(
159+
mgis_bv_MaterialDataManager*const);
105160
/*!
106161
* \brief set the state at the beginning of the time step
107162
* \param[out] s: pointer to a pointer to the state

bindings/c/src/Integrate.cxx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ mgis_status mgis_bv_integrate_2(int* const r,
6060
const mgis_bv_Behaviour* const b) {
6161
auto v = mgis::behaviour::make_view(*d);
6262
auto s = mgis_bv_integrate(r, &v, b);
63-
d->rdt = v.rdt;
6463
return s;
6564
} // end of mgis_bv_integrate
6665

bindings/c/src/MaterialDataManager.cxx

Lines changed: 138 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,29 @@ mgis_status mgis_bv_material_data_manager_initializer_bind_tangent_operator(
5252
return mgis_handle_cxx_exception();
5353
}
5454
return mgis_report_success();
55-
} // end of mgis_bv_create_material_data_manager_initializer
55+
} // end of mgis_bv_material_data_manager_initializer_bind_tangent_operator
56+
57+
mgis_status mgis_bv_material_data_manager_initializer_bind_speed_of_sound(
58+
mgis_bv_MaterialDataManagerInitializer* d,
59+
mgis_real* const p,
60+
mgis_size_type s) {
61+
if (d == nullptr) {
62+
return mgis_report_failure(
63+
"mgis_bv_material_data_manager_initializer_bind_speed_of_sound: "
64+
"null argument");
65+
}
66+
if (p == nullptr) {
67+
return mgis_report_failure(
68+
"mgis_bv_material_data_manager_initializer_bind_speed_of_sound: "
69+
"invalid tangent operator");
70+
}
71+
try {
72+
d->speed_of_sound = mgis::span<mgis::real>(p, s);
73+
} catch (...) {
74+
return mgis_handle_cxx_exception();
75+
}
76+
return mgis_report_success();
77+
} // end of mgis_bv_create_material_data_manager_initializer_bind_speed_of_sound
5678

5779
mgis_status mgis_bv_material_data_manager_initializer_get_state_0_initializer(
5880
mgis_bv_MaterialStateManagerInitializer** s,
@@ -135,6 +157,121 @@ mgis_status mgis_bv_create_material_data_manager_with_initializer(
135157
return mgis_report_success();
136158
} // end of mgis_bv_create_material_data_manager_with_initializer
137159

160+
mgis_status mgis_bv_material_data_manager_set_thread_safe(
161+
mgis_bv_MaterialDataManager* const d, const mgis_size_type b) {
162+
if (d == nullptr) {
163+
return mgis_report_failure(
164+
"mgis_bv_material_data_manager_set_thread_safe: "
165+
"null behaviour");
166+
}
167+
try {
168+
d->setThreadSafe(static_cast<bool>(b));
169+
} catch (...) {
170+
return mgis_handle_cxx_exception();
171+
}
172+
return mgis_report_success();
173+
} // end of mgis_bv_material_data_manager_set_thread_safe
174+
175+
mgis_status
176+
mgis_bv_material_data_manager_allocate_array_of_tangent_operator_blocks(
177+
mgis_bv_MaterialDataManager* const d) {
178+
if (d == nullptr) {
179+
return mgis_report_failure(
180+
"mgis_bv_material_data_manager_set_thread_safe: "
181+
"null behaviour");
182+
}
183+
try {
184+
d->allocateArrayOfTangentOperatorBlocks();
185+
} catch (...) {
186+
return mgis_handle_cxx_exception();
187+
}
188+
return mgis_report_success();
189+
} // end of
190+
// mgis_bv_material_data_manager_allocate_array_of_tangent_operator_blocks
191+
192+
mgis_status
193+
mgis_bv_material_data_manager_use_external_array_of_tangent_operator_blocks(
194+
mgis_bv_MaterialDataManager* const d,
195+
mgis_real* const p,
196+
const mgis_size_type n) {
197+
if (d == nullptr) {
198+
return mgis_report_failure(
199+
"mgis_bv_material_data_manager_set_thread_safe: "
200+
"null behaviour");
201+
}
202+
try {
203+
d->useExternalArrayOfTangentOperatorBlocks(mgis::span<mgis::real>(p, n));
204+
} catch (...) {
205+
return mgis_handle_cxx_exception();
206+
}
207+
return mgis_report_success();
208+
} // end of
209+
// mgis_bv_material_data_manager_use_external_array_of_tangent_operator_blocks
210+
211+
mgis_status
212+
mgis_bv_material_data_manager_release_array_of_tangent_operator_blocks(
213+
mgis_bv_MaterialDataManager* const d) {
214+
if (d == nullptr) {
215+
return mgis_report_failure(
216+
"mgis_bv_material_data_manager_set_thread_safe: "
217+
"null behaviour");
218+
}
219+
try {
220+
d->releaseArrayOfTangentOperatorBlocks();
221+
} catch (...) {
222+
return mgis_handle_cxx_exception();
223+
}
224+
return mgis_report_success();
225+
} // end of
226+
// mgis_bv_material_data_manager_release_array_of_tangent_operator_blocks
227+
228+
mgis_status
229+
mgis_bv_material_data_manager_allocate_array_of_speed_of_sounds(
230+
mgis_bv_MaterialDataManager* const d) {
231+
if (d == nullptr) {
232+
return mgis_report_failure(
233+
"mgis_bv_material_data_manager_set_thread_safe: "
234+
"null behaviour");
235+
}
236+
try {
237+
d->allocateArrayOfSpeedOfSounds();
238+
} catch (...) {
239+
return mgis_handle_cxx_exception();
240+
}
241+
return mgis_report_success();
242+
} // end of mgis_bv_material_data_manager_allocate_array_of_speed_of_sounds
243+
244+
mgis_status mgis_bv_material_data_manager_use_external_array_of_speed_of_sounds(
245+
mgis_bv_MaterialDataManager* const d,
246+
mgis_real* const p,
247+
const mgis_size_type n) {
248+
if (d == nullptr) {
249+
return mgis_report_failure(
250+
"mgis_bv_material_data_manager_set_thread_safe: "
251+
"null behaviour");
252+
}
253+
try {
254+
d->useExternalArrayOfSpeedOfSounds(mgis::span<mgis::real>(p, n));
255+
} catch (...) {
256+
return mgis_handle_cxx_exception();
257+
}
258+
return mgis_report_success();
259+
} // end of mgis_bv_material_data_manager_use_external_array_of_speed_of_sounds
260+
261+
mgis_status mgis_bv_material_data_manager_release_array_of_speed_of_sounds(
262+
mgis_bv_MaterialDataManager* const d) {
263+
if (d == nullptr) {
264+
return mgis_report_failure(
265+
"mgis_bv_material_data_manager_set_thread_safe: "
266+
"null behaviour");
267+
}
268+
try {
269+
d->releaseArrayOfSpeedOfSounds();
270+
} catch (...) {
271+
return mgis_handle_cxx_exception();
272+
}
273+
return mgis_report_success();
274+
} // end of mgis_bv_material_data_manager_release_array_of_speed_of_sounds
138275
mgis_status mgis_bv_material_data_manager_get_state_0(
139276
mgis_bv_MaterialStateManager** s, mgis_bv_MaterialDataManager* const d) {
140277
if (d == nullptr) {

bindings/fenics/tests/include/MGIS/FEniCS/FEniCSTestingUtilities.hxx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ namespace mgis {
5252
* - sy2: defined by the points satisfying y==1
5353
*/
5454
MGIS_VISIBILITY_EXPORT
55-
std::map<std::string, std::shared_ptr<dolfin::SubDomain>>
56-
getUnitSquareBoundaries();
55+
std::map<std::string, std::shared_ptr<dolfin::SubDomain>>
56+
getUnitSquareBoundaries();
5757
/*!
5858
* \return all the boundaries associated with a unit cube
5959
* The following boundaries are defined:
@@ -65,8 +65,8 @@ namespace mgis {
6565
* - sz2: defined by the points satisfying z==1
6666
*/
6767
MGIS_VISIBILITY_EXPORT
68-
std::map<std::string, std::shared_ptr<dolfin::SubDomain>>
69-
getUnitCubeBoundaries();
68+
std::map<std::string, std::shared_ptr<dolfin::SubDomain>>
69+
getUnitCubeBoundaries();
7070

7171
} // end of namespace fenics
7272

0 commit comments

Comments
 (0)