...
 
Commits (6)
......@@ -3,6 +3,13 @@ means week 46 of year 2013. Should a second tag be given the same week, an index
Starting from v18.47, the ticket numbers in bold are those that might break compatibility in models.
# v19.48
- Bug #1498 - #1292: Fix remaining warnings, and a stupid bug I inroduced in visco-elasticity in the conversion from Seldon to Xtensor.
- Bug #1499: Improve the exception handling within SNESSolve: previously if an exception was thrown inside the static functions provided to SNES, the exceptions were not caught properly and the program exited poorly.
# v19.45.1
- Documentation #1497: Fix a tiny bug that prevented run of GitlabPages.
......
......@@ -9,16 +9,22 @@ As the purpose is to provide a functioning MoReFEM at a minimal storge cost, onl
# Generation of the images
The Dockerfile in _Docker/Dockerfile_ is used to generate the image with dedicated args.
The Dockerfile in _Docker/Dockerfile_ is used to generate the image with dedicated args. Let's assume you have define a variable MOREFEM_TAG with a value such as vXX.YY (for instance v19.48):
For instance (when run from the root of the project):
````
DOCKER_BUILDKIT=1 docker build -t registry.gitlab.inria.fr/morefem/corelibrary/morefem/ubuntu_gcc_debug_shared --progress=plain -f Docker/Dockerfile --build-arg os=fedora --build-arg mode=debug --build-arg compiler=gcc --build-arg is_single_library=False --build-arg library_type=shared .
docker tag registry.gitlab.inria.fr/morefem/corelibrary/morefem/ubuntu_gcc_debug_shared registry.gitlab.inria.fr/morefem/corelibrary/morefem/ubuntu_gcc_debug_shared:${MOREFEM_TAG}
DOCKER_BUILDKIT=1 docker build -t registry.gitlab.inria.fr/morefem/corelibrary/morefem/fedora_clang_release_shared --progress=plain -f Docker/Dockerfile --build-arg os=fedora --build-arg mode=release --build-arg compiler=clang --build-arg is_single_library=True --build-arg library_type=shared .
docker tag registry.gitlab.inria.fr/morefem/corelibrary/morefem/fedora_clang_release_shared registry.gitlab.inria.fr/morefem/corelibrary/morefem/fedora_clang_release_shared:${MOREFEM_TAG}
DOCKER_BUILDKIT=1 docker build -t registry.gitlab.inria.fr/morefem/corelibrary/morefem/fedora_clang_debug_shared --progress=plain -f Docker/Dockerfile --build-arg os=fedora --build-arg mode=debug --build-arg compiler=clang --build-arg is_single_library=False --build-arg library_type=shared .
docker tag registry.gitlab.inria.fr/morefem/corelibrary/morefem/fedora_clang_debug_shared registry.gitlab.inria.fr/morefem/corelibrary/morefem/fedora_clang_debug_shared:${MOREFEM_TAG}
````
# Putting images on registry
......
......@@ -67,6 +67,7 @@
/* Begin PBXBuildFile section */
022CDB5622D4973B00504CF9 /* OutputFormat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02E9DED922D3A24A002810E4 /* OutputFormat.cpp */; };
02BCD35323882DF300B49A53 /* GreenLagrangeTensor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE7A38881E8D3166009DFFC3 /* GreenLagrangeTensor.cpp */; };
02F9B32C2367568C00FD4351 /* CheckInvertedElements.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02F9B32A2367568C00FD4351 /* CheckInvertedElements.cpp */; };
02F9B32E2367568C00FD4351 /* CheckInvertedElements.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 02F9B32B2367568C00FD4351 /* CheckInvertedElements.hpp */; };
02F9B32F2367568C00FD4351 /* CheckInvertedElements.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 02F9B32B2367568C00FD4351 /* CheckInvertedElements.hpp */; };
......@@ -1140,9 +1141,6 @@
BE8C37051DB50FB500919468 /* TransientSource.hxx in Headers */ = {isa = PBXBuildFile; fileRef = BE8C367F1DB50FB500919468 /* TransientSource.hxx */; };
BE8C37181DB50FB500919468 /* AnalyticalPrestress.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE8C36991DB50FB500919468 /* AnalyticalPrestress.hpp */; };
BE8C37191DB50FB500919468 /* AnalyticalPrestress.hxx in Headers */ = {isa = PBXBuildFile; fileRef = BE8C369A1DB50FB500919468 /* AnalyticalPrestress.hxx */; };
BE8C371B1DB50FB500919468 /* InputAnalyticalPrestress.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE8C369C1DB50FB500919468 /* InputAnalyticalPrestress.hpp */; };
BE8C371C1DB50FB500919468 /* InputAnalyticalPrestress.hxx in Headers */ = {isa = PBXBuildFile; fileRef = BE8C369D1DB50FB500919468 /* InputAnalyticalPrestress.hxx */; };
BE8C371D1DB50FB500919468 /* InputNone.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE8C369E1DB50FB500919468 /* InputNone.hpp */; };
BE8C371E1DB50FB500919468 /* None.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE8C369F1DB50FB500919468 /* None.cpp */; };
BE8C371F1DB50FB500919468 /* None.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE8C36A01DB50FB500919468 /* None.hpp */; };
BE8C37201DB50FB500919468 /* Hyperelasticity.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE8C36A21DB50FB500919468 /* Hyperelasticity.hpp */; };
......@@ -4036,9 +4034,6 @@
BE8C36871DB50FB500919468 /* FollowingPressure.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = FollowingPressure.hxx; sourceTree = "<group>"; };
BE8C36991DB50FB500919468 /* AnalyticalPrestress.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = AnalyticalPrestress.hpp; sourceTree = "<group>"; };
BE8C369A1DB50FB500919468 /* AnalyticalPrestress.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = AnalyticalPrestress.hxx; sourceTree = "<group>"; };
BE8C369C1DB50FB500919468 /* InputAnalyticalPrestress.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = InputAnalyticalPrestress.hpp; sourceTree = "<group>"; };
BE8C369D1DB50FB500919468 /* InputAnalyticalPrestress.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = InputAnalyticalPrestress.hxx; sourceTree = "<group>"; };
BE8C369E1DB50FB500919468 /* InputNone.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = InputNone.hpp; sourceTree = "<group>"; };
BE8C369F1DB50FB500919468 /* None.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = None.cpp; sourceTree = "<group>"; };
BE8C36A01DB50FB500919468 /* None.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = None.hpp; sourceTree = "<group>"; };
BE8C36A21DB50FB500919468 /* Hyperelasticity.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Hyperelasticity.hpp; sourceTree = "<group>"; };
......@@ -8659,9 +8654,6 @@
children = (
BE8C36991DB50FB500919468 /* AnalyticalPrestress.hpp */,
BE8C369A1DB50FB500919468 /* AnalyticalPrestress.hxx */,
BE8C369C1DB50FB500919468 /* InputAnalyticalPrestress.hpp */,
BE8C369D1DB50FB500919468 /* InputAnalyticalPrestress.hxx */,
BE8C369E1DB50FB500919468 /* InputNone.hpp */,
BE3444F02375A57000639772 /* Microsphere.hpp */,
BE3444F12375A57000639772 /* Microsphere.hxx */,
BE8C369F1DB50FB500919468 /* None.cpp */,
......@@ -10849,7 +10841,6 @@
BE7D64EE235906FB00A59EE3 /* Bidomain.hxx in Headers */,
BE8C37041DB50FB500919468 /* TransientSource.hpp in Headers */,
BE8C36F51DB50FB500919468 /* Mass.hpp in Headers */,
BE8C371B1DB50FB500919468 /* InputAnalyticalPrestress.hpp in Headers */,
BE3444F72375A5D500639772 /* Microsphere.hpp in Headers */,
BE7D64C7235906CA00A59EE3 /* UpdateFiberDeformation.hxx in Headers */,
BE7C94771F604ED7003D2C52 /* MitchellSchaeffer.hxx in Headers */,
......@@ -10857,7 +10848,6 @@
BE7C94731F604ED7003D2C52 /* FitzHughNagumo.hpp in Headers */,
BE7D64AE235906AE00A59EE3 /* NonlinearMembrane.hpp in Headers */,
BE8C37351DB50FB500919468 /* Helper.hxx in Headers */,
BE8C371D1DB50FB500919468 /* InputNone.hpp in Headers */,
BE7D65032359070000A59EE3 /* Bidomain.hpp in Headers */,
BE7C94741F604ED7003D2C52 /* FitzHughNagumo.hxx in Headers */,
BE7D64F0235906FB00A59EE3 /* GradPhiGradPhi.hxx in Headers */,
......@@ -10866,7 +10856,6 @@
BE7D64B3235906AE00A59EE3 /* SecondPiolaKirchhoffStressTensor.hxx in Headers */,
BE7D64F5235906FB00A59EE3 /* SurfacicBidomain.hpp in Headers */,
BE494103224250E800157863 /* FiberDensityJ1J4J6.hxx in Headers */,
BE8C371C1DB50FB500919468 /* InputAnalyticalPrestress.hxx in Headers */,
BE7D65092359070000A59EE3 /* ScalarDivVectorial.hxx in Headers */,
BE494102224250E800157863 /* FiberDensityJ1J4J6.hpp in Headers */,
BE7D64F7235906FB00A59EE3 /* VariableMass.hpp in Headers */,
......@@ -12675,6 +12664,7 @@
BE01DAE51E854DF700F3EAF7 /* ElementaryDataImpl.cpp in Sources */,
13E7E89D1F828D11002F1F02 /* CiarletGeymonat.cpp in Sources */,
BE01DAFE1E854E2500F3EAF7 /* FindCoordsOfGlobalVector.cpp in Sources */,
02BCD35323882DF300B49A53 /* GreenLagrangeTensor.cpp in Sources */,
BE01DB041E854EB400F3EAF7 /* ExtractLocalDofValues.cpp in Sources */,
BE01DAC81E854DD600F3EAF7 /* ExtractGradientBasedBlock.cpp in Sources */,
BEE45C0A2357BAB400E0AB7C /* InvariantComputation.cpp in Sources */,
......@@ -77,7 +77,7 @@ namespace MoReFEM
{
for (unsigned int shape_fct_index = 0u; shape_fct_index < Nshape_function; ++shape_fct_index)
{
jacobian(component, static_cast<int>(shape_fct_index)) +=
jacobian(component, shape_fct_index) +=
coords_in_geom_elt[component] * first_derivate_shape_function[shape_fct_index];
}
}
......
......@@ -82,11 +82,11 @@ namespace MoReFEM
for (unsigned int component = 0; component < Ncomponent; ++component, dof_index += Nnode)
{
result_scalar_product += schur(static_cast<int>(dof_index))
result_scalar_product += schur(static_cast<std::size_t>(dof_index))
* increment_local_displacement[static_cast<std::size_t>(dof_index)];
}
}
auto functor = [residual, result_scalar_product](double& fiber_deformation)
{
fiber_deformation += - (residual + result_scalar_product);
......
......@@ -128,17 +128,17 @@ namespace MoReFEM
/*!
* \brief Current residual of the contraction rheology at the newton iteration, will be used to update ec_n+1.
* G_BS = (tau_c_n+12# + mu*ec_p_n+12)(1+2ec_n+12) - Es*(e1D_n+12# - ec_n+12)(1+2e1D_n+12#)
* G22 = dG_BS_dec_n+1
* residual = G22^(-1)*G_BS
* K22 = dG_BS_dec_n+1
* residual = K22^(-1)*G_BS
*/
const ParameterAtQuadraturePoint<ParameterNS::Type::scalar, ParameterNS::TimeDependencyNS::None>&
contraction_rheology_residual_;
/*!
* \brief Current schur complement at the newton iteration, will be used to update ec_n+1.
* G21 = dG_dyn_dy_n+1, where G_dyn is the residual of the dynamics.
* G22 = dG_BS_dec_n+1
* schur = G22^(-1)*G21
* K21 = dG_dyn_dy_n+1, where G_dyn is the residual of the dynamics.
* K22 = dG_BS_dec_n+1
* schur = K22^(-1)*K21
*/
const ParameterAtQuadraturePoint<ParameterNS::Type::vector, ParameterNS::TimeDependencyNS::None>&
schur_complement_;
......
......@@ -36,10 +36,10 @@ namespace MoReFEM
* \brief Implementation of global UpdateFiberDeformation operator.
*
* G_BS = (tau_c_n+12# + mu*ec_p_n+12)(1+2ec_n+12) - Es*(e1D_n+12# - ec_n+12)(1+2e1D_n+12#)
* G22 = dG_BS_dec_n+1
* G21 = dG_dyn_dy_n+1, where G_dyn is the residual of the dynamics.
* K22 = dG_BS_dec_n+1
* K21 = dG_dyn_dy_n+1, where G_dyn is the residual of the dynamics.
* ec_n+1(k+1) = ec_n+1_(k) + dec
* dec = G22^-1(-G_BS - G21*dY)
* dec = K22^-1(-G_BS - K21*dY)
* ec = fiber deformation
* dY = displacement increment
*
......
......@@ -114,7 +114,7 @@ namespace MoReFEM
assert(node_test_index + component * Nnode_for_test_unknown < former_local_velocity.size());
modified_velocity_at_quad_pt +=
former_local_velocity[node_test_index + component * Nnode_for_test_unknown]
* phi_test(static_cast<int>(node_test_index));
* phi_test(node_test_index);
}
for (auto m = 0ul; m < Nnode_for_test_unknown; ++m)
......@@ -124,7 +124,7 @@ namespace MoReFEM
matrix_result(m, n) +=
factor
* modified_velocity_at_quad_pt
* grad_phi_test(m, static_cast<int>(component))
* grad_phi_test(m, component)
* phi(n) ;
}
}
......@@ -144,7 +144,7 @@ namespace MoReFEM
for (auto node_index = 0ul; node_index < Nnode_for_test_unknown; ++node_index)
div_modified_velocity_at_quad_pt +=
former_local_velocity[node_index + component * Nnode_for_test_unknown]
* grad_phi_test(static_cast<int>(node_index), static_cast<int>(component));
* grad_phi_test(node_index, component);
}
for (auto m = 0ul; m < Nnode_for_test_unknown; ++m)
......
......@@ -122,7 +122,7 @@ namespace MoReFEM
if (!(NumericNS::IsZero(norm)))
{
Mlt(1. / norm, tauxtau);
tauxtau /= norm;
double new_sigma_c = 0.;
......@@ -157,7 +157,7 @@ namespace MoReFEM
else
new_sigma_c = GetNonCstSigmaC().GetValue(quad_pt, geom_elt);
Add(new_sigma_c, tauxtau, dW);
xt::noalias(dW) += new_sigma_c * tauxtau;
}
}
}
......
......@@ -205,17 +205,10 @@ namespace MoReFEM
tauxtau /= norm;
// calculation of the squ are elongation, of the fiber elongation, of the integration weights, of weigthed stiffness
double elongation_squared = 0.;
double elongation_squared = xt::linalg::vdot(cauchy_green_tensor_value, tauxtau);
{
const auto cauchy_green_size = cauchy_green_tensor_value.shape(0);
for (auto i = 0ul; i < cauchy_green_size ; ++i)
elongation_squared += cauchy_green_tensor_value(i) * tauxtau(i);
for (auto i = DimensionT; i < size ; ++i)
elongation_squared += cauchy_green_tensor_value(i) * tauxtau(i);
}
for (auto i = DimensionT; i < size ; ++i)
elongation_squared += cauchy_green_tensor_value(i) * tauxtau(i);
const double elongation = std::sqrt(elongation_squared);
const double weight_I4 = std::exp(inplane_dispersion_I4 * std::cos(2.0 * value_quad_pt_p)
......
......@@ -77,7 +77,7 @@ namespace MoReFEM
}});
auto& d2W_visco = this->matrix_parent::template GetLocalMatrix<EnumUnderlyingType(LocalMatrixIndex::d2W_visco)>();
d2W_visco.fill(1.);
d2W_visco = xt::eye(d2W_visco.shape(0), 0); // identity matrix
this->matrix_parent::template GetLocalMatrix<EnumUnderlyingType(LocalMatrixIndex::tangent_matrix_visco)>().fill(0.);
......
......@@ -277,7 +277,7 @@ namespace MoReFEM
for(unsigned int component = 0u; component < Ncomponent; ++component)
{
dphi(node_position_in_matrix, static_cast<int>(component))
dphi(node_position_in_matrix, component)
= basic_ref_felt.FirstDerivateShapeFunction(local_node_index, component, quadrature_point);
}
}
......
......@@ -99,7 +99,7 @@ namespace MoReFEM
const auto& current_point = *current_point_ptr;
for(unsigned int icoor = 0; icoor < Ncomponent; ++icoor)
point_(static_cast<int>(i), static_cast<int>(icoor)) = current_point[icoor];
point_(i, icoor) = current_point[icoor];
}
}
......
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1100"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "BE9CBB4F1B0B339100FA0F1B"
BuildableName = "libSeldon.a"
BlueprintName = "Seldon"
ReferencedContainer = "container:Seldon.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "BE9CBB4F1B0B339100FA0F1B"
BuildableName = "libSeldon.a"
BlueprintName = "Seldon"
ReferencedContainer = "container:Seldon.xcodeproj">
</BuildableReference>
</MacroExpansion>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "BE9CBB4F1B0B339100FA0F1B"
BuildableName = "libSeldon.a"
BlueprintName = "Seldon"
ReferencedContainer = "container:Seldon.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>