Commit 4cad8acc authored by GILLES Sebastien's avatar GILLES Sebastien
Browse files

#1292 All tests are now passed correctly.

parent d97da3cf
......@@ -483,8 +483,6 @@
BE2EEA411DB4B7CB00AF0D62 /* SetFromInputData.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE2EEA3F1DB4B7CB00AF0D62 /* SetFromInputData.hpp */; };
BE2EEA421DB4B7CB00AF0D62 /* SetFromInputData.hxx in Headers */ = {isa = PBXBuildFile; fileRef = BE2EEA401DB4B7CB00AF0D62 /* SetFromInputData.hxx */; };
BE2EEA441DB4CF3300AF0D62 /* ParameterType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2EEA431DB4CF3300AF0D62 /* ParameterType.cpp */; };
BE2EEA481DB4DB5300AF0D62 /* CopyValues.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2EEA451DB4DB5300AF0D62 /* CopyValues.cpp */; };
BE2EEA491DB4DB5300AF0D62 /* CopyValues.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE2EEA461DB4DB5300AF0D62 /* CopyValues.hpp */; };
BE3221891B4686B100F27D6C /* Local2GlobalStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE3221861B4686B100F27D6C /* Local2GlobalStorage.cpp */; };
BE32218A1B4686B100F27D6C /* Local2GlobalStorage.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE3221871B4686B100F27D6C /* Local2GlobalStorage.hpp */; };
BE32218B1B4686B100F27D6C /* Local2GlobalStorage.hxx in Headers */ = {isa = PBXBuildFile; fileRef = BE3221881B4686B100F27D6C /* Local2GlobalStorage.hxx */; };
......@@ -1225,10 +1223,6 @@
BE90E1C01A2492AA00CCAFDE /* SeldonFunctions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE9FE84218CE0A6900177F79 /* SeldonFunctions.cpp */; };
BE90E1C11A2492AA00CCAFDE /* SeldonFunctions.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE9FE84318CE0A6900177F79 /* SeldonFunctions.hpp */; };
BE90E1C21A2492AA00CCAFDE /* SeldonFunctions.hxx in Headers */ = {isa = PBXBuildFile; fileRef = BE9FE84418CE0A6900177F79 /* SeldonFunctions.hxx */; };
BE90E1C31A2492AA00CCAFDE /* SubVector.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE643DF819AB697700E9A4D7 /* SubVector.hpp */; };
BE90E1C41A2492AA00CCAFDE /* SubVector.hxx in Headers */ = {isa = PBXBuildFile; fileRef = BE643DF919AB697700E9A4D7 /* SubVector.hxx */; };
BE90E1C51A2492AA00CCAFDE /* SubVector_Base.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE643DF619AB697700E9A4D7 /* SubVector_Base.hpp */; };
BE90E1C61A2492AA00CCAFDE /* SubVector_Base.hxx in Headers */ = {isa = PBXBuildFile; fileRef = BE643DF719AB697700E9A4D7 /* SubVector_Base.hxx */; };
BE90E1C81A2492AA00CCAFDE /* Mpi.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BEC1FC6918C470C500A4EB89 /* Mpi.hpp */; };
BE90E1CA1A2492AA00CCAFDE /* Parmetis.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BEC1FC6D18C470C500A4EB89 /* Parmetis.hpp */; };
BE90E1CD1A2492AA00CCAFDE /* PetscMat.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BEC1FC7118C470C500A4EB89 /* PetscMat.hpp */; };
......@@ -1236,7 +1230,6 @@
BE90E1CF1A2492AA00CCAFDE /* PetscSys.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BEC1FC7318C470C500A4EB89 /* PetscSys.hpp */; };
BE90E1D01A2492AA00CCAFDE /* PetscVec.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BEC1FC7418C470C500A4EB89 /* PetscVec.hpp */; };
BE90E1D11A2492AA00CCAFDE /* PetscViewer.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BEC1FC7518C470C600A4EB89 /* PetscViewer.hpp */; };
BE90E1D21A2492AA00CCAFDE /* Seldon.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BEC1FC7818C470C600A4EB89 /* Seldon.hpp */; };
BE915A161AAF514900B4C474 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE915A151AAF514900B4C474 /* main.cpp */; };
BE93B31A1F052CFC004F84CF /* Format.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE93B3191F052CFC004F84CF /* Format.hpp */; };
BE93B3201F0536DA004F84CF /* OutputDeformedMesh.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE93B31D1F0536DA004F84CF /* OutputDeformedMesh.hpp */; };
......@@ -3292,8 +3285,6 @@
BE2EEA3F1DB4B7CB00AF0D62 /* SetFromInputData.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = SetFromInputData.hpp; sourceTree = "<group>"; };
BE2EEA401DB4B7CB00AF0D62 /* SetFromInputData.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = SetFromInputData.hxx; sourceTree = "<group>"; };
BE2EEA431DB4CF3300AF0D62 /* ParameterType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ParameterType.cpp; sourceTree = "<group>"; };
BE2EEA451DB4DB5300AF0D62 /* CopyValues.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CopyValues.cpp; path = FromParameterAtDof/Internal/Local/CopyValues.cpp; sourceTree = "<group>"; };
BE2EEA461DB4DB5300AF0D62 /* CopyValues.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = CopyValues.hpp; path = FromParameterAtDof/Internal/Local/CopyValues.hpp; sourceTree = "<group>"; };
BE3047E41DF86D7C00582480 /* Matrix.doxygen */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Matrix.doxygen; sourceTree = "<group>"; };
BE30D2741DE45FF000B5768B /* demo_vectorial_P2.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = demo_vectorial_P2.lua; sourceTree = "<group>"; };
BE3221861B4686B100F27D6C /* Local2GlobalStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Local2GlobalStorage.cpp; sourceTree = "<group>"; };
......@@ -3863,10 +3854,6 @@
BE63C1681B21DFDD00978D05 /* ConstantTimeStep.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = ConstantTimeStep.hxx; sourceTree = "<group>"; };
BE63C1741B21E51000978D05 /* TimeManagerInstance.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = TimeManagerInstance.hpp; sourceTree = "<group>"; };
BE63C1751B21E51000978D05 /* TimeManagerInstance.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = TimeManagerInstance.hxx; sourceTree = "<group>"; };
BE643DF619AB697700E9A4D7 /* SubVector_Base.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = SubVector_Base.hpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
BE643DF719AB697700E9A4D7 /* SubVector_Base.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = SubVector_Base.hxx; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
BE643DF819AB697700E9A4D7 /* SubVector.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = SubVector.hpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
BE643DF919AB697700E9A4D7 /* SubVector.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = SubVector.hxx; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
BE6462301AEE1AE100D5162A /* GlobalMatrix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GlobalMatrix.cpp; sourceTree = "<group>"; };
BE6462311AEE1AE100D5162A /* GlobalMatrix.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = GlobalMatrix.hpp; sourceTree = "<group>"; };
BE6462321AEE1AE100D5162A /* GlobalMatrix.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = GlobalMatrix.hxx; sourceTree = "<group>"; };
......@@ -4518,7 +4505,6 @@
BEC1FC7318C470C500A4EB89 /* PetscSys.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = PetscSys.hpp; sourceTree = "<group>"; };
BEC1FC7418C470C500A4EB89 /* PetscVec.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = PetscVec.hpp; sourceTree = "<group>"; };
BEC1FC7518C470C600A4EB89 /* PetscViewer.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = PetscViewer.hpp; sourceTree = "<group>"; };
BEC1FC7818C470C600A4EB89 /* Seldon.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = Seldon.hpp; sourceTree = "<group>"; };
BEC37E0617DDC0210021BFB7 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
BEC41AFA1DDDF3F000FDB0A4 /* CheckInterpolator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CheckInterpolator.cpp; sourceTree = "<group>"; };
BEC41AFB1DDDF3F000FDB0A4 /* CheckInterpolator.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = CheckInterpolator.hpp; sourceTree = "<group>"; };
......@@ -5865,8 +5851,6 @@
children = (
BE099EDA1DAFEACD00A54392 /* FromAtDofToAtQuadPt.hpp */,
BE099EDB1DAFEACD00A54392 /* FromAtDofToAtQuadPt.hxx */,
BE2EEA451DB4DB5300AF0D62 /* CopyValues.cpp */,
BE2EEA461DB4DB5300AF0D62 /* CopyValues.hpp */,
);
name = Local;
sourceTree = "<group>";
......@@ -9377,10 +9361,6 @@
BE9FE84218CE0A6900177F79 /* SeldonFunctions.cpp */,
BE9FE84318CE0A6900177F79 /* SeldonFunctions.hpp */,
BE9FE84418CE0A6900177F79 /* SeldonFunctions.hxx */,
BE643DF819AB697700E9A4D7 /* SubVector.hpp */,
BE643DF919AB697700E9A4D7 /* SubVector.hxx */,
BE643DF619AB697700E9A4D7 /* SubVector_Base.hpp */,
BE643DF719AB697700E9A4D7 /* SubVector_Base.hxx */,
BE4ED3191A2CBAC400DE374E /* MatrixOperations.cpp */,
BE4ED31A1A2CBAC400DE374E /* MatrixOperations.hpp */,
BE4ED31B1A2CBAC400DE374E /* MatrixOperations.hxx */,
......@@ -10004,7 +9984,6 @@
BEC1FC6818C470C500A4EB89 /* Mpi */,
BEC1FC6C18C470C500A4EB89 /* Parmetis */,
BEC1FC6E18C470C500A4EB89 /* Petsc */,
BEC1FC7718C470C600A4EB89 /* Seldon */,
BE1457ED1E54BC08000A2BF5 /* Tclap */,
BE9ECC091F5857B900D92CD7 /* Boost */,
BE2D26912351D78900A8A5A4 /* Xtensor */,
......@@ -10041,14 +10020,6 @@
path = Petsc;
sourceTree = "<group>";
};
BEC1FC7718C470C600A4EB89 /* Seldon */ = {
isa = PBXGroup;
children = (
BEC1FC7818C470C600A4EB89 /* Seldon.hpp */,
);
path = Seldon;
sourceTree = "<group>";
};
BEC526EE1CC58462000E9027 /* Coords */ = {
isa = PBXGroup;
children = (
......@@ -10987,7 +10958,6 @@
BE451E881DAF795B00807035 /* Solid.hpp in Headers */,
BE25DB8A1DB122CE003DA5C0 /* FromParameterAtDof.hpp in Headers */,
BE451E781DAF78F100807035 /* LameLambda.hpp in Headers */,
BE2EEA491DB4DB5300AF0D62 /* CopyValues.hpp in Headers */,
13D6A6731EA9F4CF0050363A /* ScalarParameterFromFile.hpp in Headers */,
BE451E891DAF795B00807035 /* Solid.hxx in Headers */,
BEDEDE08212FFB4C0060F00E /* Solid.hxx in Headers */,
......@@ -11345,7 +11315,6 @@
BE90E1931A24929A00CCAFDE /* UniqueId.hxx in Headers */,
BE110E8D1E114F1400D2D2C8 /* TupleHelper.hpp in Headers */,
BE5657411D3CD7470091F063 /* Array.hpp in Headers */,
BE90E1C41A2492AA00CCAFDE /* SubVector.hxx in Headers */,
BE41A8C61A24AA30004E4312 /* Parmetis.hpp in Headers */,
BE1459FF1E54BC49000A2BF5 /* CmdLine.h in Headers */,
BE90E17B1A24926E00CCAFDE /* Singleton.hpp in Headers */,
......@@ -11385,7 +11354,6 @@
BEDEB9291C3C073100B1C71B /* Umfpack.hpp in Headers */,
BE53FC151E0D7C6800C5D6F5 /* TupleIteration.hpp in Headers */,
BE90E16C1A24926E00CCAFDE /* UnorderedMap.hpp in Headers */,
BE90E1C51A2492AA00CCAFDE /* SubVector_Base.hpp in Headers */,
BE353BBD22E8766100A06A8F /* Normal.hpp in Headers */,
BE5389FD1C897FE400D80749 /* Mpi.hpp in Headers */,
BE90E1B01A24929A00CCAFDE /* Vector.hpp in Headers */,
......@@ -11480,7 +11448,6 @@
BE90E1791A24926E00CCAFDE /* Singleton.hxx in Headers */,
BE1459FD1E54BC49000A2BF5 /* ArgException.h in Headers */,
BE76F2551D7D5DE90061B50E /* CSRPattern.hpp in Headers */,
BE90E1D21A2492AA00CCAFDE /* Seldon.hpp in Headers */,
BE90E1B31A24929A00CCAFDE /* AccessVectorContent.hpp in Headers */,
BE353BB322E83AF800A06A8F /* Print.hxx in Headers */,
BE1459FC1E54BC49000A2BF5 /* Arg.h in Headers */,
......@@ -11537,7 +11504,6 @@
BE41A8D01A24AA59004E4312 /* Petsc.hxx in Headers */,
BE2592141C9ABA6900DF404B /* Utilities.doxygen in Headers */,
BE353BC322E8790400A06A8F /* Variant.hpp in Headers */,
BE90E1C31A2492AA00CCAFDE /* SubVector.hpp in Headers */,
BEDEB92F1C3C073100B1C71B /* Snes.hpp in Headers */,
BE5AA42922E62C3A00A393DE /* RAII.hpp in Headers */,
BE76F2511D7D5D900061B50E /* LocalVectorStorage.hxx in Headers */,
......@@ -11558,7 +11524,6 @@
BE353B9B22E7527100A06A8F /* Extract.hpp in Headers */,
BE6FFAD91A399E2200D048BD /* Numeric.hxx in Headers */,
BE90E1921A24929A00CCAFDE /* UniqueId.hpp in Headers */,
BE90E1C61A2492AA00CCAFDE /* SubVector_Base.hxx in Headers */,
BE145A101E54BC49000A2BF5 /* VersionVisitor.h in Headers */,
BE90E1691A24926E00CCAFDE /* PointerComparison.hxx in Headers */,
BE145A081E54BC49000A2BF5 /* OptionalUnlabeledTracker.h in Headers */,
......@@ -12601,7 +12566,6 @@
BE451E701DAF78F100807035 /* ComputeGradientBasedElasticityTensor.cpp in Sources */,
BE451E771DAF78F100807035 /* LameLambda.cpp in Sources */,
BE451E871DAF795B00807035 /* Solid.cpp in Sources */,
BE2EEA481DB4DB5300AF0D62 /* CopyValues.cpp in Sources */,
13D6A6721EA9F4CF0050363A /* ScalarParameterFromFile.cpp in Sources */,
BEDEDE07212FFB4C0060F00E /* Solid.cpp in Sources */,
);
......@@ -18,7 +18,7 @@
# include <memory>
# include <vector>
// \todo #1292 # include "ThirdParty/IncludeWithoutWarning/Seldon/Seldon.hpp"
// \todo #1292 # include ""
# include "Utilities/LinearAlgebra/Storage/Local/LocalMatrixStorage.hpp"
# include "Utilities/LinearAlgebra/Storage/Local/LocalVectorStorage.hpp"
......
......@@ -25,7 +25,7 @@
# include "Utilities/Mpi/Mpi.hpp"
# include "Utilities/Filesystem/Directory.hpp"
// \todo #1292 # include "ThirdParty/IncludeWithoutWarning/Seldon/Seldon.hpp"
// \todo #1292 # include ""
# include "ThirdParty/IncludeWithoutWarning/Petsc/PetscSys.hpp"
# include "Core/InputData/InputData.hpp"
......
......@@ -68,17 +68,17 @@ namespace MoReFEM
Impl::AssertLocalNodeConsistency(p1_local_node_list, p_higher_local_node_list);
#endif // NDEBUG
local_projection_matrix.resize(static_cast<int>(p1_local_node_list.size()) * target_data.NunknownComponent(),
static_cast<int>(p_higher_local_node_list.size()) * source_data.NunknownComponent());
local_projection_matrix.Zero();
local_projection_matrix.resize({ p1_local_node_list.size() * target_data.NunknownComponent(),
p_higher_local_node_list.size() * source_data.NunknownComponent() });
local_projection_matrix.fill(0.);
const auto Nnode_in_col = static_cast<int>(p_higher_local_node_list.size());
const auto Nnode_in_row = static_cast<int>(p1_local_node_list.size());
const auto Nnode_in_col = p_higher_local_node_list.size();
const auto Nnode_in_row = p1_local_node_list.size();
assert(Nnode_in_col > Nnode_in_row);
// Prepare the content of the block that will be repeated for each unknown component.
LocalMatrix block(Nnode_in_row, Nnode_in_col);
block.Zero();
LocalMatrix block({ Nnode_in_row, Nnode_in_col });
block.fill(0.);
for (auto i = 0; i < Nnode_in_row; ++i)
block(i, i) = 1.;
......
......@@ -75,7 +75,7 @@ namespace MoReFEM
local_projection_matrix.resize({static_cast<std::size_t>(p1b_local_node_list.size()) * target_data.NunknownComponent(),
static_cast<std::size_t>(p1_local_node_list.size()) * source_data.NunknownComponent()});
local_projection_matrix.Zero();
local_projection_matrix.fill(0.);
const auto Nnode_in_col = p1_local_node_list.size();
const auto Nnode_in_row = p1b_local_node_list.size();
......@@ -83,7 +83,7 @@ namespace MoReFEM
assert(Nnode_in_row >= Nnode_in_col);
// Prepare the content of the block that will be repeated for each unknown component.
LocalMatrix block(Nnode_in_row, Nnode_in_col);
LocalMatrix block({ Nnode_in_row, Nnode_in_col });
block.fill(0.);
for (auto i = 0; i < Nnode_in_col; ++i)
......
......@@ -72,19 +72,19 @@ namespace MoReFEM
Internal::ConformInterpolatorNS::Local::Impl::AssertLocalNodeConsistency(p1_local_node_list, p2_local_node_list);
#endif // NDEBUG
local_projection_matrix.resize({p2_local_node_list.size()) * target_data.NunknownComponent(),
p1_local_node_list.size()) * source_data.NunknownComponent()});
local_projection_matrix.resize({p2_local_node_list.size() * target_data.NunknownComponent(),
p1_local_node_list.size() * source_data.NunknownComponent()});
local_projection_matrix.Zero();
local_projection_matrix.fill(0.);
const auto Nnode_in_col = static_cast<int>(p1_local_node_list.size());
const auto Nnode_in_row = static_cast<int>(p2_local_node_list.size());
const auto Nnode_in_col = p1_local_node_list.size();
const auto Nnode_in_row = p2_local_node_list.size();
assert(Nnode_in_row > Nnode_in_col);
// Prepare the content of the block that will be repeated for each unknown component.
LocalMatrix block({Nnode_in_row, Nnode_in_col});
block.Zero();
block.fill(0.);
for (auto i = 0; i < Nnode_in_col; ++i)
block(i, i) = 1.;
......
......@@ -15,6 +15,6 @@ target_sources(${MOREFEM_OP_INSTANCES}
include(${CMAKE_CURRENT_LIST_DIR}/ParameterOperator/SourceList.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/VariationalOperator/SourceList.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/HyperelasticLaws/SourceList.cmake)
#include(${CMAKE_CURRENT_LIST_DIR}/ConformInterpolator/SourceList.cmake)
#include(${CMAKE_CURRENT_LIST_DIR}/NonConformInterpolator/SourceList.cmake)
#include(${CMAKE_CURRENT_LIST_DIR}/StateOperator/SourceList.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/ConformInterpolator/SourceList.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/NonConformInterpolator/SourceList.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/StateOperator/SourceList.cmake)
......@@ -75,7 +75,7 @@ namespace MoReFEM
assert(Ncomponent == test_ref_felt.Ncomponent());
auto& matrix_result = elementary_data.GetNonCstMatrixResult();
matrix_result.Zero();
matrix_result.fill(0.);
const auto Nnode_for_unknown = static_cast<std::size_t>(ref_felt.Nnode());
const auto int_Nnode_for_unknown = static_cast<int>(Nnode_for_unknown);
......
......@@ -185,26 +185,14 @@ namespace MoReFEM
block_matrix3.fill(0.);
block_matrix4.fill(0.);
xt::noalias(FOO) = xt::linalg::dot((factor1,
dphi_test,
transposed_dphi,
block_matrix1);
xt::noalias(FOO) = xt::linalg::dot((factor1 + factor2,
dpsi_test,
transposed_dpsi,
block_matrix2);
xt::noalias(FOO) = xt::linalg::dot((factor1,
dphi_test,
transposed_dpsi,
block_matrix3);
xt::noalias(FOO) = xt::linalg::dot((factor1,
dpsi_test,
transposed_dphi,
block_matrix4);
xt::noalias(block_matrix1) = factor1 * xt::linalg::dot(dphi_test, transposed_dphi);
xt::noalias(block_matrix2) = (factor1 + factor2) * xt::linalg::dot(dpsi_test, transposed_dpsi);
xt::noalias(block_matrix3) = factor1 * xt::linalg::dot(dphi_test, transposed_dpsi);
xt::noalias(block_matrix4) = factor1 * xt::linalg::dot(dpsi_test, transposed_dphi);
const auto& tau_interpolate = fibers.GetValue(quad_pt, geom_elt);
double norm = 0.;
......@@ -214,54 +202,25 @@ namespace MoReFEM
tau_sigma.fill(0.);
if (!(NumericNS::IsZero(norm)))
{
Wrappers::Seldon::OuterProd(tau_interpolate, tau_interpolate, tau_sigma);
Mlt(1. / norm, tau_sigma);
{
xt::noalias(tau_sigma) = xt::linalg::outer(tau_interpolate, tau_interpolate) / norm;
xt::noalias(FOO) = xt::linalg::dot((factor3 - factor1,
dphi_test,
tau_sigma,
dphi_test_sigma);
xt::noalias(FOO) = xt::linalg::dot(Add(1.,
dphi_test_sigma,
transposed_dphi,
1.,
block_matrix1);
xt::noalias(FOO) = xt::linalg::dot((factor3 - factor1,
dphi_test,
tau_sigma,
dphi_test_sigma);
xt::noalias(FOO) = xt::linalg::dot(Add(1.,
dphi_test_sigma,
transposed_dpsi,
1.,
block_matrix3);
xt::noalias(FOO) = xt::linalg::dot((factor3 - factor1,
dpsi_test,
tau_sigma,
dpsi_test_sigma);
xt::noalias(FOO) = xt::linalg::dot(Add(1.,
dpsi_test_sigma,
transposed_dphi,
1.,
block_matrix4);
xt::noalias(FOO) = xt::linalg::dot((factor3 - factor1 + factor4 - factor2,
dpsi_test,
tau_sigma,
dpsi_test_sigma);
xt::noalias(dphi_test_sigma) = (factor3 - factor1) * xt::linalg::dot(dphi_test, tau_sigma);
xt::noalias(block_matrix1) += xt::linalg::dot(dphi_test_sigma, transposed_dphi);
xt::noalias(dphi_test_sigma) = (factor3 - factor1) * xt::linalg::dot(dphi_test, tau_sigma);
xt::noalias(block_matrix3) += xt::linalg::dot(dphi_test_sigma, transposed_dpsi);
xt::noalias(dpsi_test_sigma) = (factor3 - factor1) * xt::linalg::dot(dpsi_test, tau_sigma);
xt::noalias(block_matrix4) += xt::linalg::dot(dpsi_test_sigma, transposed_dphi);
xt::noalias(dpsi_test_sigma) = (factor3 - factor1 + factor4 - factor2)
* xt::linalg::dot(dpsi_test, tau_sigma);
xt::noalias(FOO) = xt::linalg::dot(Add(1.,
dpsi_test_sigma,
transposed_dpsi,
1.,
block_matrix2);
xt::noalias(block_matrix2) += xt::linalg::dot(dpsi_test_sigma, transposed_dpsi);
}
// Then report it into the elementary matrix.
......
......@@ -136,14 +136,11 @@ namespace MoReFEM
assert(dphi.shape(0) == Nnode_for_unknown);
assert(dphi_test.shape(0) == Nnode_for_test_unknown);
xt::noalias(transposed_dphi) = xt::transpose(dphi);
xt::noalias(transposed_dphi) = xt::transpose(dphi);
block_matrix.fill(0.);
xt::noalias(FOO) = xt::linalg::dot((factor1,
dphi_test,
transposed_dphi,
block_matrix);
xt::noalias(block_matrix) = factor1 * xt::linalg::dot(dphi_test, transposed_dphi);
const auto& tau_interpolate = fibers.GetValue(quad_pt, geom_elt);
......@@ -155,25 +152,17 @@ namespace MoReFEM
if (!(NumericNS::IsZero(norm)))
{
Wrappers::Seldon::OuterProd(tau_interpolate, tau_interpolate, tau_sigma);
Mlt(1. / norm, tau_sigma);
xt::noalias(tau_sigma) = xt::linalg::outer(tau_interpolate, tau_interpolate) / norm;
xt::noalias(FOO) = xt::linalg::dot((factor2 - factor1,
dphi_test,
tau_sigma,
dphi_test_sigma);
xt::noalias(FOO) = xt::linalg::dot(Add(1.,
dphi_test_sigma,
transposed_dphi,
1.,
block_matrix);
xt::noalias(dphi_test_sigma) = (factor2 - factor1) * xt::linalg::dot(dphi_test, tau_sigma);
xt::noalias(block_matrix) += xt::linalg::dot(dphi_test_sigma, transposed_dphi);
}
// Then report it into the elementary matrix.
for (int m = 0; m < Nnode_for_test_unknown; ++m)
for (auto m = 0ul; m < Nnode_for_test_unknown; ++m)
{
for (int n = 0; n < Nnode_for_unknown; ++n)
for (auto n = 0ul; n < Nnode_for_unknown; ++n)
{
const double value = block_matrix(m, n);
......
......@@ -10,40 +10,40 @@
target_sources(${MOREFEM_OP_INSTANCES}
PRIVATE
# "${CMAKE_CURRENT_LIST_DIR}/Ale.cpp"
# "${CMAKE_CURRENT_LIST_DIR}/Bidomain.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Ale.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Bidomain.cpp"
"${CMAKE_CURRENT_LIST_DIR}/GradOnGradientBasedElasticityTensor.cpp"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiGradPhi.cpp"
# "${CMAKE_CURRENT_LIST_DIR}/GradPhiTauOrthoTauGradPhi.cpp"
# "${CMAKE_CURRENT_LIST_DIR}/GradPhiTauTauGradPhi.cpp"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiGradPhi.cpp"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiTauOrthoTauGradPhi.cpp"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiTauTauGradPhi.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Mass.cpp"
"${CMAKE_CURRENT_LIST_DIR}/ScalarDivVectorial.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Stokes.cpp"
# "${CMAKE_CURRENT_LIST_DIR}/SurfacicBidomain.cpp"
"${CMAKE_CURRENT_LIST_DIR}/ScalarDivVectorial.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Stokes.cpp"
"${CMAKE_CURRENT_LIST_DIR}/SurfacicBidomain.cpp"
PRIVATE
# "${CMAKE_CURRENT_LIST_DIR}/Ale.hpp"
# "${CMAKE_CURRENT_LIST_DIR}/Ale.hxx"
# "${CMAKE_CURRENT_LIST_DIR}/Bidomain.hpp"
# "${CMAKE_CURRENT_LIST_DIR}/Bidomain.hxx"
"${CMAKE_CURRENT_LIST_DIR}/Ale.hpp"
"${CMAKE_CURRENT_LIST_DIR}/Ale.hxx"
"${CMAKE_CURRENT_LIST_DIR}/Bidomain.hpp"
"${CMAKE_CURRENT_LIST_DIR}/Bidomain.hxx"
"${CMAKE_CURRENT_LIST_DIR}/GradOnGradientBasedElasticityTensor.hpp"
"${CMAKE_CURRENT_LIST_DIR}/GradOnGradientBasedElasticityTensor.hxx"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiGradPhi.hpp"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiGradPhi.hxx"
# "${CMAKE_CURRENT_LIST_DIR}/GradPhiTauOrthoTauGradPhi.hpp"
# "${CMAKE_CURRENT_LIST_DIR}/GradPhiTauOrthoTauGradPhi.hxx"
# "${CMAKE_CURRENT_LIST_DIR}/GradPhiTauTauGradPhi.hpp"
# "${CMAKE_CURRENT_LIST_DIR}/GradPhiTauTauGradPhi.hxx"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiGradPhi.hpp"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiGradPhi.hxx"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiTauOrthoTauGradPhi.hpp"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiTauOrthoTauGradPhi.hxx"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiTauTauGradPhi.hpp"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiTauTauGradPhi.hxx"
"${CMAKE_CURRENT_LIST_DIR}/Mass.hpp"
"${CMAKE_CURRENT_LIST_DIR}/Mass.hxx"
"${CMAKE_CURRENT_LIST_DIR}/ScalarDivVectorial.hpp"
"${CMAKE_CURRENT_LIST_DIR}/ScalarDivVectorial.hxx"
"${CMAKE_CURRENT_LIST_DIR}/Stokes.hpp"
"${CMAKE_CURRENT_LIST_DIR}/Stokes.hxx"
# "${CMAKE_CURRENT_LIST_DIR}/SurfacicBidomain.hpp"
# "${CMAKE_CURRENT_LIST_DIR}/SurfacicBidomain.hxx"
# "${CMAKE_CURRENT_LIST_DIR}/VariableMass.hpp"
# "${CMAKE_CURRENT_LIST_DIR}/VariableMass.hxx"
"${CMAKE_CURRENT_LIST_DIR}/ScalarDivVectorial.hpp"
"${CMAKE_CURRENT_LIST_DIR}/ScalarDivVectorial.hxx"
"${CMAKE_CURRENT_LIST_DIR}/Stokes.hpp"
"${CMAKE_CURRENT_LIST_DIR}/Stokes.hxx"
"${CMAKE_CURRENT_LIST_DIR}/SurfacicBidomain.hpp"
"${CMAKE_CURRENT_LIST_DIR}/SurfacicBidomain.hxx"
"${CMAKE_CURRENT_LIST_DIR}/VariableMass.hpp"
"${CMAKE_CURRENT_LIST_DIR}/VariableMass.hxx"
)
include(${CMAKE_CURRENT_LIST_DIR}/Internal/SourceList.cmake)
......@@ -10,40 +10,40 @@
target_sources(${MOREFEM_OP_INSTANCES}
PRIVATE
# "${CMAKE_CURRENT_LIST_DIR}/Ale.cpp"
# "${CMAKE_CURRENT_LIST_DIR}/Bidomain.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Ale.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Bidomain.cpp"
"${CMAKE_CURRENT_LIST_DIR}/GradOnGradientBasedElasticityTensor.cpp"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiGradPhi.cpp"
# "${CMAKE_CURRENT_LIST_DIR}/GradPhiTauOrthoTauGradPhi.cpp"
# "${CMAKE_CURRENT_LIST_DIR}/GradPhiTauTauGradPhi.cpp"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiTauOrthoTauGradPhi.cpp"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiTauTauGradPhi.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Mass.cpp"
"${CMAKE_CURRENT_LIST_DIR}/ScalarDivVectorial.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Stokes.cpp"
# "${CMAKE_CURRENT_LIST_DIR}/SurfacicBidomain.cpp"
"${CMAKE_CURRENT_LIST_DIR}/ScalarDivVectorial.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Stokes.cpp"
"${CMAKE_CURRENT_LIST_DIR}/SurfacicBidomain.cpp"
PRIVATE
# "${CMAKE_CURRENT_LIST_DIR}/Ale.hpp"
# "${CMAKE_CURRENT_LIST_DIR}/Ale.hxx"
# "${CMAKE_CURRENT_LIST_DIR}/Bidomain.hpp"
# "${CMAKE_CURRENT_LIST_DIR}/Bidomain.hxx"
"${CMAKE_CURRENT_LIST_DIR}/Ale.hpp"
"${CMAKE_CURRENT_LIST_DIR}/Ale.hxx"
"${CMAKE_CURRENT_LIST_DIR}/Bidomain.hpp"
"${CMAKE_CURRENT_LIST_DIR}/Bidomain.hxx"
"${CMAKE_CURRENT_LIST_DIR}/GradOnGradientBasedElasticityTensor.hpp"
"${CMAKE_CURRENT_LIST_DIR}/GradOnGradientBasedElasticityTensor.hxx"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiGradPhi.hpp"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiGradPhi.hxx"
# "${CMAKE_CURRENT_LIST_DIR}/GradPhiTauOrthoTauGradPhi.hpp"
# "${CMAKE_CURRENT_LIST_DIR}/GradPhiTauOrthoTauGradPhi.hxx"
# "${CMAKE_CURRENT_LIST_DIR}/GradPhiTauTauGradPhi.hpp"
# "${CMAKE_CURRENT_LIST_DIR}/GradPhiTauTauGradPhi.hxx"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiTauOrthoTauGradPhi.hpp"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiTauOrthoTauGradPhi.hxx"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiTauTauGradPhi.hpp"
"${CMAKE_CURRENT_LIST_DIR}/GradPhiTauTauGradPhi.hxx"
"${CMAKE_CURRENT_LIST_DIR}/Mass.hpp"
"${CMAKE_CURRENT_LIST_DIR}/Mass.hxx"
"${CMAKE_CURRENT_LIST_DIR}/ScalarDivVectorial.hpp"
"${CMAKE_CURRENT_LIST_DIR}/ScalarDivVectorial.hxx"
"${CMAKE_CURRENT_LIST_DIR}/Stokes.hpp"
"${CMAKE_CURRENT_LIST_DIR}/Stokes.hxx"
# "${CMAKE_CURRENT_LIST_DIR}/SurfacicBidomain.hpp"
# "${CMAKE_CURRENT_LIST_DIR}/SurfacicBidomain.hxx"
# "${CMAKE_CURRENT_LIST_DIR}/VariableMass.hpp"
# "${CMAKE_CURRENT_LIST_DIR}/VariableMass.hxx"
"${CMAKE_CURRENT_LIST_DIR}/ScalarDivVectorial.hpp"
"${CMAKE_CURRENT_LIST_DIR}/ScalarDivVectorial.hxx"
"${CMAKE_CURRENT_LIST_DIR}/Stokes.hpp"
"${CMAKE_CURRENT_LIST_DIR}/Stokes.hxx"
"${CMAKE_CURRENT_LIST_DIR}/SurfacicBidomain.hpp"
"${CMAKE_CURRENT_LIST_DIR}/SurfacicBidomain.hxx"
"${CMAKE_CURRENT_LIST_DIR}/VariableMass.hpp"
"${CMAKE_CURRENT_LIST_DIR}/VariableMass.hxx"
)
include(${CMAKE_CURRENT_LIST_DIR}/Local/SourceList.cmake)
......@@ -10,8 +10,8 @@
target_sources(${MOREFEM_OP_INSTANCES}
PRIVATE
# "${CMAKE_CURRENT_LIST_DIR}/NonLinearSource.hpp"
# "${CMAKE_CURRENT_LIST_DIR}/NonLinearSource.hxx"
"${CMAKE_CURRENT_LIST_DIR}/NonLinearSource.hpp"
"${CMAKE_CURRENT_LIST_DIR}/NonLinearSource.hxx"
"${CMAKE_CURRENT_LIST_DIR}/TransientSource.hpp"
"${CMAKE_CURRENT_LIST_DIR}/TransientSource.hxx"
)
......
......@@ -77,9 +77,9 @@ namespace MoReFEM
}});
auto& d2W_visco = this->matrix_parent::template GetLocalMatrix<EnumUnderlyingType(LocalMatrixIndex::d2W_visco)>();
d2W_visco.SetIdentity();
d2W_visco.fill(1.);
this->matrix_parent::template GetLocalMatrix<EnumUnderlyingType(LocalMatrixIndex::tangent_matrix_visco)>().Zero();