Commit Graph

2346 Commits

Author SHA1 Message Date
Arne Morten Kvarving
a4acd0efac added: support dune-istl >= 2.7 2022-05-11 10:52:02 +02:00
Arne Morten Kvarving
6bbe09a312 fixed: add missing initializers 2022-05-10 11:32:16 +02:00
Arne Morten Kvarving
b2707a8137 changed: make SIMbase::project virtual
needs to allow overriding in subclasses for when
implementing support for alternative projection bases
2022-05-10 11:32:16 +02:00
Arne Morten Kvarving
459463878a introduce support for an alternative projection basis 2022-05-10 11:32:16 +02:00
Arne Morten Kvarving
1d88adf5af added: getProjectedField
this returns a scalar field over the projection basis
with the given coefficients.
2022-05-10 11:32:16 +02:00
Arne Morten Kvarving
fa73096ebe changed: remove support for subgridH
no longer needed, pressure and velocity are
projected on separate bases now
2022-05-10 10:15:10 +02:00
Arne Morten Kvarving
73d6e85745 fixed: wrong projection basis for tensor subgrid 2022-05-10 10:15:10 +02:00
Arne Morten Kvarving
3e6edab293 added: allow instancing a FieldFunction from an existing field 2022-05-10 09:59:38 +02:00
Arne Morten Kvarving
f27b3a4efb added: allow instancing scalar fields directly from a surface/volume 2022-05-10 09:59:38 +02:00
Arne Morten Kvarving
6b861e4789 added: initPatch member in Integrand
this tells the integrand the index of the patch currently
being processed.
2022-05-10 09:06:02 +02:00
Arne Morten Kvarving
0fb14fe00d fixed: handle 'default' preconditioner for ISTL 2022-05-09 11:02:37 +02:00
Arne Morten Kvarving
5391cfbc6b added: support for block matrices for graph partitioned models 2022-05-09 11:02:37 +02:00
Arne Morten Kvarving
646bf62b0f changed: refactor setup of sparsity pattern into separate methods
makes the code more readable
2022-05-09 11:02:37 +02:00
Knut Morten Okstad
048e37ffcb Fixup for commit 3ce4b7f36904303a01f0af1ef61ac5f5e402024a: valgrind complaint 2022-04-28 08:45:57 +02:00
Knut Morten Okstad
6991c28f31 Added: Extra (optional) int argument in writeGlvA 2022-04-26 16:25:20 +02:00
Knut Morten Okstad
5d7270e612 Added: Internal forces debug print 2022-04-26 16:25:20 +02:00
Knut Morten Okstad
3ce4b7f369 Fixed: Clear reaction force component after it being added when a group
of nodes is specified, such that nodes that are member in more than one
set are not added twice
2022-04-26 16:25:20 +02:00
Knut Morten Okstad
b672585ecc Changed: Also log multi-threading on faces to IFEM::cout 2022-04-26 16:25:20 +02:00
Knut Morten Okstad
6b322da4b6 Changed: Generalize ReactionsOnly class for internal force calculation.
Added: SIMbase::assembleForces() and IntegrandBase::setSecondaryInt().
Added: virtual method for calculation/print of interface force resultants.
2022-04-26 16:25:20 +02:00
Arne Morten Kvarving
37d33f0648 fixed: set parameters when projecting function
necessary when using a fieldfunction
2022-04-26 12:45:04 +02:00
Arne Morten Kvarving
e3d3b526e8 fixed: clear additional functions in clearProperties
this is necessary to not register multiple functions if
used in adaptive simulations
2022-04-26 11:39:18 +02:00
Arne Morten Kvarving
cadcefb454 fixed: memory leak in mixed LR integrands
tensorspline was not cleared up after LR bases
had been established
2022-04-26 11:37:34 +02:00
Arne Morten Kvarving
ddf260795f changed: add 'symmetric' as an alias for 'symmetrized' beta type 2022-04-22 12:15:39 +02:00
Arne Morten Kvarving
71fa5975da fixed: check number of components in function
in particular for mixed integrands using anasol boundary conditions
nf can be greater than the number of components in the function. this is
because nf is set to the total number of fields and not the number
of fields on a single basis
2022-04-22 10:57:33 +02:00
Arne Morten Kvarving
e80aef161b re-enable multithreaded mixed 3D assembly
the problems leading to it being disabled should have been fixed now
2022-04-20 12:20:10 +02:00
Arne Morten Kvarving
673eec21c7 added: more field function types
gradient and laplacian of scalar and vectorial fields.
this will be used for deriving source functions for simulations
where we use another simulation result as "exact" solution
2022-04-20 12:19:20 +02:00
Arne Morten Kvarving
02de121ca3 added: ability to use a fixed time level in FieldFunctions 2022-04-20 12:19:20 +02:00
Arne Morten Kvarving
c5c43beca2 fixed/add: hessianFE in SplineFields
previously the derivatives on the reference domain was returned
2022-04-20 12:19:20 +02:00
Arne Morten Kvarving
9bfe8af84e added: support FieldFunctions for mixed spline fields
If no dash is found in the basis name, we assume the field
names given are on separate bases, one per basis

this is used to instance fieldfunctions for div-compatible
solution fields
2022-04-20 12:19:20 +02:00
Arne Morten Kvarving
3dc01f07a4 added: implement valueCoor in mixed spline fields 2022-04-20 12:19:20 +02:00
Arne Morten Kvarving
e479951031 added: ability to read mixed bases from streams 2022-04-20 12:19:20 +02:00
Knut Morten Okstad
421fbdf198 Changed: Enable MathJax for equation rendering 2022-03-08 15:31:27 +01:00
Knut Morten Okstad
d015090e9f Fixed: Calculation of reaction and interface forces.
Boundary contributions due to in-homogeneous neumann conditions were missing
due to the flawed check on the presence of myEqSys->getVector().
We now rely on the hasBoundaryTerms() method of the integrand instead.
Use property type OTHER when internal forces are calculated,
such that dirichlet boundaries in the same patch that does not belong
to the interface we are calculating interface forces on are skipped.
2022-03-02 12:30:16 +01:00
Knut Morten Okstad
58e5969947 Added: Convenience method SAM::printVector (for debugging) 2022-03-02 12:30:16 +01:00
Knut Morten Okstad
7736de71ca Added: SIMgeneric::getInterfaceForces() 2022-03-02 12:30:16 +01:00
Knut Morten Okstad
88ee21ffe0 Changed: Use SIMbase::getBoundaryNodes in SIM::initBoundaryNodeMap() 2022-03-02 12:30:16 +01:00
Knut Morten Okstad
d984430fca Added: Extract internal forces from ReactionsOnly integral 2022-03-02 12:30:16 +01:00
Knut Morten Okstad
a5fd95b0ed Fixed: Don't flag Neumann-order or local tangent direction
for edge boundaries in 3D through the Property::lindx member.
It is not needed and also makes it easier to address volume
edges (in range 1 to 12) correctly without the mod'ing.
2022-03-02 11:53:07 +01:00
Knut Morten Okstad
83ae2c73fa Fixed: Ensure unique boundary nodes nodes also for ldim=nsd and ldim=4.
Added: Also consider 1D boundaries (edges) in 3D and vertices in 2D.
2022-03-02 11:53:07 +01:00
Knut Morten Okstad
3712524a0e Replaced virtual method getEdge() by getBoundary1Nodes()
with a similar interface as getBoundaryNodes()
2022-03-02 11:53:07 +01:00
Knut Morten Okstad
5c3e3d2bb2 Fixed: The *sol vector is considered the control point values of the
projected secondary solution if the description field equals "projected",
and the results field contains DataExporter::SECONDARY.
2022-03-02 11:42:20 +01:00
Arne Morten Kvarving
7787ed15d9 fixed: these are pointers
use nullptr, not 0
2022-02-17 09:19:25 +01:00
Arne Morten Kvarving
2e6002d024 fixed: we have to set the option here to avoid trouble
if we have previously reused the matrix factorization,
the FACTORED value is stored. this leads to segfaults.
we now properly flag that we only want to reuse the
sparsity pattern
2022-02-17 09:19:25 +01:00
Arne Morten Kvarving
ab6d03b141 added: extend element matrix cache support to mixed 2022-02-17 08:45:06 +01:00
Arne Morten Kvarving
a3555e8942 changed: do not resize the newton matrix up front
this way we can use its non-emptyness to signal that
it has already been assembled.
2022-02-16 22:44:10 +01:00
Arne Morten Kvarving
5618e4b000 changed: print iteration history in NonLinSIM even at msgLevel -1
allows suppressing norm and solution summary output, while still
keeping the iteration history. useful in split simulators
such as Chorin
2022-02-14 07:00:47 +01:00
Arne Morten Kvarving
ffe5499917 fixed: wrong variable used in 3D mixed tensor spline fields 2022-02-11 15:32:38 +01:00
Arne Morten Kvarving
22d7167c7d fixed: we need to free the MPI_Comms even in serial 2022-02-09 12:52:53 +01:00
Arne Morten Kvarving
ec6b692c3a fixed: also put multiplier in block 2 with component based blocks 2022-01-27 11:44:00 +01:00
Arne Morten Kvarving
a2cf0932f1 Print number of local equations in each block 2022-01-27 11:44:00 +01:00
Arne Morten Kvarving
a4b38fff9d added: support for Integrand::AVERAGE flag in LR integrands 2022-01-27 11:15:12 +01:00
Knut Morten Okstad
4a347ed412 Added: Optional print of external load resultant.
Added: Debug print of nodal reaction forces.
Changed: Better property mapping outprint.
2022-01-26 17:01:33 +01:00
Arne Morten Kvarving
795bb64b9d fixed: element index should be 0 based 2022-01-26 13:35:40 +01:00
Arne Morten Kvarving
4d4ce8e147 fixed: lagrange multiplier with single basis LR 2022-01-26 13:35:40 +01:00
Arne Morten Kvarving
4633d4dc89 fixed: forgotten condition in 3D subgrid with H mesh projection 2021-12-01 15:23:30 +01:00
Knut Morten Okstad
ea0ad9a4fe Changed: Use std::vector<double> as reaction force container 2021-11-20 10:56:32 +01:00
Arne Morten Kvarving
d8d4d40d8f fixed: projection basis for XXX_CONT_RAISE_BASIS2 2021-10-29 10:59:43 +02:00
Arne Morten Kvarving
7cfd2470eb fixed: typo, cycles, not cyles 2021-10-29 10:32:47 +02:00
Knut Morten Okstad
22952809fa Changed: The node renumbering is moved to a separate method,
since this also have to done by the new readTopologyOnly method
2021-10-27 11:28:18 +02:00
Knut Morten Okstad
fc57eed844 Added: public method SIMinput::readTopologyOnly() 2021-10-27 11:20:41 +02:00
Knut Morten Okstad
d1520df805 Added: protected method XMLInputBase::loadFile() 2021-10-25 21:53:15 +02:00
Knut Morten Okstad
ed32443cf5 Changed: RealArray instead of Vector for setSolution and updateRotations 2021-10-20 12:42:03 +02:00
Knut Morten Okstad
e3631fd746 Changed: Initialize h to 0 - not 1 - like for NewmarkMats (consistency) 2021-10-20 12:11:50 +02:00
Knut Morten Okstad
31e288e62b Changed: Use std::vector instead of utl::vector in the vector field
access methods, since they (or their users) don't really need
the linear algebra features that come with the utl::vector class
2021-10-20 12:11:50 +02:00
Knut Morten Okstad
d66cc98f25 Changed: Declare array arguments as RealArray instead of Vector
when the linear algebra functionality of the latter is not used
2021-10-20 12:11:50 +02:00
Knut Morten Okstad
685e849948 Changed: Use std::vector instead of utl::vector as argument types
in the [inject|extract]NodeVec methods, for increased flexibility.
2021-10-20 12:10:29 +02:00
Knut Morten Okstad
bdeacb8eef Fixed: eval2ndSolution should do nothing if opt.pSolOnly is true.
Changed: Return true if myVtf is null in all the writeGlv methods.
Then there is no need to check for domain decomposition and procId>0
since myVtf will always be null in that case.
Removed evalProjSolution, use writeGlvP with iStep=0 instead.
2021-10-14 08:19:06 +02:00
Arne Morten Kvarving
573ce9199f fixed: add missing initializer 2021-10-12 11:17:07 +02:00
Knut Morten Okstad
d7ee36657e Changed: Made the second overloaded finalizeElement method
protected, such that all ASM-classes are forced to use the
version providing the most general interface.
Changed: No need to assign time to the Vec4 object within
the integration loop, doing it on construction instead.
2021-10-11 07:41:39 +02:00
Knut Morten Okstad
65c36818e3 Added: LHS-matrix buffers for linear Newmark integration 2021-10-08 13:19:25 +02:00
Knut Morten Okstad
1b58b79d5b Added: <nupdate> tag for NewmarkSIM.
Fixed: Missing newTangent in NonLinSIM::solveIteration.
2021-10-08 13:19:25 +02:00
Knut Morten Okstad
3089611cdc Changed: Derive class BDFMats directly from ElmMats.
It has nothing to do with the Newmark methods.
2021-10-08 13:19:25 +02:00
Knut Morten Okstad
bb95b66a7c Changed: No default value on the number of bases 2021-10-08 13:19:25 +02:00
Arne Morten Kvarving
b4ac1494a2 fixed: use multiplication instead of shift operator
this implicitly casts to int in the process.
if not the shift makes little sense as everything is done
for an unsigned char
2021-10-08 10:46:51 +02:00
Knut Morten Okstad
35b4aa95fa Changed: AdaptiveSIM::savePoints does not need a time argument,
as this class is for static/stationary problems only. The iStep
argument is not a time step counter, but a refinement step counter.
Also, the method is made protected.
2021-10-08 10:46:51 +02:00
Knut Morten Okstad
458b245b9f Changed: Removed unused newLHS argument in SIMbase::solveSystem() 2021-10-08 10:46:51 +02:00
Knut Morten Okstad
62ecb75f55 Changed: Removed the newLHS argument in the SystemMatrix::solve().
It was used only by PETScMatrix but also there we can use the
factored member inherited from SparseMatrix.
2021-10-08 10:46:51 +02:00
Knut Morten Okstad
9ffa4c49c8 Changed: Removed bool argument to SparseMatrix::solve (unused). 2021-10-08 10:46:51 +02:00
Arne Morten Kvarving
4230fe7495 avoid shadowing variables 2021-10-08 10:46:51 +02:00
Arne Morten Kvarving
6314afc628 remove unused variable 2021-10-08 10:46:51 +02:00
Arne Morten Kvarving
24456cb047 remove code that is unreachable 2021-10-08 10:46:51 +02:00
Arne Morten Kvarving
88bcd66794 mark some constructors explicit 2021-10-08 10:46:51 +02:00
Arne Morten Kvarving
ef2aca116d fixed: missing member initialization 2021-10-07 11:44:02 +02:00
Arne Morten Kvarving
3e9014c8d0 make some things const where possible 2021-10-07 11:44:02 +02:00
Arne Morten Kvarving
a75a0c7158 small reorganizations to aid static analyzers 2021-09-30 20:22:56 +02:00
Arne Morten Kvarving
d2ebc44b15 initialize some variables
to aid static analyzers
2021-09-30 20:22:56 +02:00
Arne Morten Kvarving
47ec469796 avoid some unnecessary stores 2021-09-30 20:22:56 +02:00
Arne Morten Kvarving
2927ed8fcf fixed: set intended variable, not the local one 2021-09-30 20:22:56 +02:00
Arne Morten Kvarving
703e3e668e avoid unnecessary initialization
value is immediately overwritten in block below
2021-09-30 20:22:56 +02:00
Arne Morten Kvarving
030b638180 fixed: potential memory leak for lfunc 2021-09-30 20:22:56 +02:00
Arne Morten Kvarving
4259c6b89a add some null pointer checks
does no harm and aids static analyzers
2021-09-30 20:22:56 +02:00
Eivind Fonn
00bfaf54c3 Changed: allow profiler to optionally be silent 2021-09-27 10:39:31 +02:00
Arne Morten Kvarving
548adf7e5b fixed: allow flat dump format 2021-09-24 10:29:20 +02:00
Knut Morten Okstad
dba0163a5b Added: Attribute "printmapping" on <resultpoints> tag 2021-09-23 12:26:28 +02:00
Knut Morten Okstad
352b5ff97c Added: enum value NONE_UPTAN implying linear analysis, but with calculation
of tangent matrix at each step. Must use this when we have inhomogeneous
Dirichlet conditions, as a workaround. The ideal solution would be that the
integrands had a special RHS_ONLY mode that includes element matrix
calculation, but where only the force vector is assembled.
2021-09-23 06:46:02 +02:00
Knut Morten Okstad
19b3033e7c Fixed: Don't recalculate tangent in pure linear analysis 2021-09-22 08:05:33 +02:00
Arne Morten Kvarving
cff62ff7b9 added: ability to set a parameter value for ExprFunctions 2021-09-21 12:31:52 +02:00
Knut Morten Okstad
9193befb12 Fixed: Duplicated \param in the doxy 2021-09-10 14:58:26 +02:00
Knut Morten Okstad
6f5b57ec0e Fixed: Skip all points with zero coordinates (from zero-knotspan elements)
in the traction vector output.
2021-09-10 14:58:26 +02:00
Knut Morten Okstad
319feceb55 Added: <saveTrac/> tag inside <postprocessing> context for traction output 2021-09-10 14:58:26 +02:00
Arne Morten Kvarving
fd8ee565d6 fix types in ranged for loops 2021-09-10 12:16:28 +02:00
Arne Morten Kvarving
9dd8bbc23c add explicit std::move calls to avoid copies 2021-09-10 12:16:28 +02:00
Arne Morten Kvarving
1459d5fd96 add missing using statement 2021-09-10 12:16:28 +02:00
Knut Morten Okstad
c00a779e66 Fixed: Convert angles to radians and flip transformation 2021-09-07 13:56:22 +02:00
Knut Morten Okstad
52478b152d Changed: utl::parseTimeFunction() is replaced by a file-scoped static
function parseFunction(), since it is not supposed to be used elsewhere.
Added: Possibility to specify a constant time function.
2021-09-07 13:53:34 +02:00
Knut Morten Okstad
eb016808e0 Added: Force direction specification as single angle and rotation axis 2021-09-07 13:53:34 +02:00
Knut Morten Okstad
2cd00d922d Added: Unit testing for the new ForceDirField class 2021-09-07 13:53:28 +02:00
Knut Morten Okstad
b8b490a81a Moved class NodeVecFunc to SIM, since it depends on SIMbase 2021-09-03 12:19:28 +02:00
Knut Morten Okstad
1e64ba1948 Added: New TractionFunc subclass ForceDirField 2021-09-03 10:50:56 +02:00
Knut Morten Okstad
00f4a10cfe Moved the TractionField and PressureField class definitions to separate
header file for clarity, while renaming Function.C to TractionField.C.
Avoid including Function.h in IntegrandBase.h - use forward declarations.
2021-08-19 09:10:39 +02:00
Knut Morten Okstad
8c250a622e Added: Traction direction as a vector-valued function 2021-08-19 08:48:30 +02:00
Arne Morten Kvarving
eeee095b1a added: matrix-market storage format 2021-08-18 16:04:12 +02:00
Arne Morten Kvarving
e75fe59c79 changed: enumerate matrix storage formats 2021-08-18 16:04:12 +02:00
Knut Morten Okstad
28c544a23d Added: LinearFunc can now also represent a piece-wise linear function
with the function value pairs read from a multi-column ASCII file.
Changed: Reimplemented Interpolate1D using a LinearFunc as member.
Added: LinVecFunc - a vector-valued piecewise linear function.
2021-08-12 11:26:03 +02:00
Arne Morten Kvarving
2458cf0d04 added: empty protected constructor in FunctionSum
to give flexibility in subclasses
2021-08-12 10:10:56 +02:00
Arne Morten Kvarving
7fe06c2a4f replace tabs with spaces 2021-08-11 20:31:11 +02:00
Arne Morten Kvarving
1f43156434 changed: ignore singular points in evalSolution
instead of setting gradient to 0
2021-08-11 10:49:58 +02:00
Arne Morten Kvarving
e9ef9039bb fixed: ignore singular point in ASM evalSolution 2021-08-11 10:49:58 +02:00
Arne Morten Kvarving
4f4dc1fb03 remove obsolete testTensor.cpp 2021-08-11 09:00:00 +02:00
Arne Morten Kvarving
d3d39cf1e3 fixed: build with petsc >= 3.15.0 2021-08-09 11:37:54 +02:00
Knut Morten Okstad
e364b22b08 Fixed: A coordinate bug in the ASMuCube constructor.
Changed: Use ASMuCube instead of a SIM in the solution transfer unit tests.
Added: Unit test for the ASMu3D::DirichletFace struct.
2021-08-05 07:39:45 +02:00
Knut Morten Okstad
cf6fcb3ce9 Added: Static convenience helper function getFaceEnum().
Changed: Let the ASMu3D::DirichletFace constructor initialize
the corners member (including a bugfix in the static map there),
and reimplement ASMu3D::constrainFace in a similar way as ASMu2D.
2021-07-31 23:41:16 +02:00
Knut Morten Okstad
c9a3e8a2e7 Changed: Made SIMbase::dumpEqSystem() public 2021-07-06 20:51:26 +02:00
Knut Morten Okstad
0e7a253ec0 Remove opt.pSolOnly = true 2021-06-29 13:33:29 +02:00
Knut Morten Okstad
aeb64ced0e Added: matrix::augmentCols() 2021-06-29 13:33:29 +02:00
Knut Morten Okstad
84bfa9c2bd Added: Static function for reading recovery matrix from file,
and a const method for conducting the actual recovery
2021-06-29 13:33:29 +02:00
Knut Morten Okstad
1668893602 Added: virtual method SIMoutput::tesselatePatch().
Changed: Made SIMoutput::writeGlvS[12] virtual.
2021-06-29 13:33:29 +02:00
Knut Morten Okstad
73b28fa33d Added: Transformation of element block coordinates.
Changed: Checking for unique nodes is optional when merging blocks.
2021-06-29 13:33:29 +02:00
Knut Morten Okstad
468304ba8b Changed: Ensure only one ASMsupel patch per superelement.
Added: Container for storing superelement data.
2021-06-29 13:33:29 +02:00
Knut Morten Okstad
f56080d55f Added: Write displacement recovery matrix to binary file 2021-06-29 13:33:29 +02:00
Knut Morten Okstad
ee807adb25 Added: Method for static condensation of a linear equation system 2021-06-29 13:33:29 +02:00
Knut Morten Okstad
571aa5a47e Added: SparseMatrix::split() and SparseMatrix::getColumn() 2021-06-29 13:33:29 +02:00
Knut Morten Okstad
d42cbef045 Changed: calcCSR is now a const method instead of a static function 2021-06-29 13:33:29 +02:00
Knut Morten Okstad
b84f2235d2 Fixed: Missing includes 2021-06-26 16:01:01 +02:00
Arne Morten Kvarving
97e8b9cadc fix some doxy issues 2021-06-25 11:44:10 +02:00
Arne Morten Kvarving
c6a6b42a4e add missing includes 2021-06-25 11:44:10 +02:00
Arne Morten Kvarving
dc57ad192f changed: make coord protected to allow subclass access 2021-06-23 10:01:30 +02:00
Arne Morten Kvarving
bb00bc7a72 added: ASMs3DLag::updateOrigin
for translating the entire mesh by a constant.
2021-06-23 10:01:30 +02:00
Arne Morten Kvarving
307d5b58f3 disable check for empty spline
so this can be used in (ASMsxDLag-)subclasses
where the geometry is not derived from a spline.
2021-06-23 10:01:30 +02:00
Arne Morten Kvarving
6827453eb9 add evaluate for ASMsxDLag
also expand evalSolution to respect evaluation points
2021-06-23 10:01:30 +02:00
Arne Morten Kvarving
a97b78af8a added: ASMsxDLag::findElement
this finds the element of a parameter value
and optionally calculates the local coordinates
of an integration point.
2021-06-23 10:01:30 +02:00
Knut Morten Okstad
f3cdb440a2 Fixed: Override getNoIntPoints and getNoBouPoints
to reflect the respective integrate methods for LRSplines
2021-06-21 14:20:11 +02:00
Knut Morten Okstad
a2cec872cb Fixed: Let clear() erase threading group data 2021-06-21 14:20:02 +02:00
Knut Morten Okstad
ff60831796 Fixed: Using direction-dependent Gauss quadrature on face integrals 2021-06-21 14:17:50 +02:00
Knut Morten Okstad
9421df2838 Changed: mixedMADOFs renamed to extraMADOFs and is now mutable.
Fixed: Use a separate MADOF array in extractPatchSolution()
when extraordinary nodes and/or monolithic coupled simulators.
2021-06-18 14:17:10 +02:00
Knut Morten Okstad
1561294100 Added: Serialize the minimum element size for restart 2021-06-11 10:35:54 +02:00
Knut Morten Okstad
e860948ae9 Fixed: Restart files do not necessarily start with time level 0 2021-06-11 10:35:54 +02:00
Knut Morten Okstad
574b2974a4 Changed: Store basis on restart file only after each mesh refinement 2021-06-11 10:35:54 +02:00
Knut Morten Okstad
428ff24a95 Changed: Made SIMsolver::[s|deS]erialize() methods virtual.
Added: Optional log message when serializing simulator state.

Fixed (temporarily): Subtract one from the restartStep argument
to HDF5Restart::readData(), to compensate for the change in the
previous commit. Consider undoing this later, and instead update
all restart regression tests specifying a restart time level.
2021-06-11 10:30:44 +02:00
Knut Morten Okstad
6f96812f0d Changed: Set time levels for restart files by incrementing a private
counter instead of calculating from time step number and stride.
The first time level will then be 0 (not 1) as for the visualization data.
Fixed: Always store geometry basis for the first time level saved.
Compare with last time step saved instead of mod'ing the time step counter
when deciding whether to save new data, in case not invoked every time step.
2021-06-11 10:30:44 +02:00
Knut Morten Okstad
d6e7caa46f Added: Serialization of reference norm for Newton iterations 2021-06-11 10:30:44 +02:00
Knut Morten Okstad
78c5a5766e Added: SIMinput::[save|restore|restart]Basis and SIMbase::[set|get]Refined 2021-06-11 10:30:44 +02:00
Arne Morten Kvarving
845f469568 Fixed: Check for missing extension in restart file.
Added: Option to reading basis data instead of results on restart.
2021-06-11 10:30:44 +02:00
Knut Morten Okstad
a577d895f4 Added: SIMbase::getExtEnerg() and SIMbase::theExtEnerg() for serialization 2021-06-11 10:30:44 +02:00
Arne Morten Kvarving
7f29f5a28b Fixed: Reset time step after deserialization 2021-06-11 10:30:44 +02:00
Knut Morten Okstad
a92cb3c51e Changed: Assume total rotations are in the solution vector if the
nodal rotation matrices have not been updated (linear analysis).
2021-06-10 14:38:58 +02:00
Knut Morten Okstad
27597c2d7e Fixed: Result points for spline-less unstructured Lagrange models 2021-06-10 13:48:45 +02:00
Knut Morten Okstad
04d0ca77b8 Fixup for commit 7c2d6c4fadde008d166343cb991ad005d488d9f0:
Also the loop range was incorrect.
2021-06-10 13:48:45 +02:00
Knut Morten Okstad
2c0f9c75ad Added: Support for explicit element set (TopItem::idim == 5) 2021-06-10 13:48:45 +02:00
Knut Morten Okstad
fd08a9a141 Added: Explicit nodal constraints for 1D patches 2021-06-10 13:48:45 +02:00
Knut Morten Okstad
5819a3366f Fixed: Also offset the global patch indices when merging sim-objects.
Changed: Process explicit nodal constraints with the vertex constraints.
2021-06-10 13:48:45 +02:00
Knut Morten Okstad
bc4dacb44d Added: Skip element if local integral pointer is NULL 2021-06-10 13:48:45 +02:00
Knut Morten Okstad
810ea35205 Added: Superelement transformation 2021-06-10 13:48:45 +02:00
Knut Morten Okstad
07d318ca8f Changed: Let the non-const getNodeSet method also return the set index.
Changed: Override getBoundaryNodes() to return an indexed node set.
2021-06-10 13:48:45 +02:00
Knut Morten Okstad
865b27a90d Fixup for commit 64164d22fa565630c809eded6b56b792ce1fa885:
Only the first and last patch files need to be marked.
2021-06-10 13:48:45 +02:00
Knut Morten Okstad
a73c1b5a12 Added: Input of unstructured Lagrange mesh from xml-file 2021-06-10 13:48:45 +02:00
Knut Morten Okstad
cf3261fa12 Added: class ASMu1DLag for unstructured Lagrange 1D patches.
Changed: Moved the Matlab mesh input method to ASMutils.C file.
2021-06-10 13:48:45 +02:00
Knut Morten Okstad
e694fa091a Fixed: Avoid dereferencing curv pointer in initLocalElementAxes()
and generateTwistedFEModel(). Removed unused/obsolete refine method.
2021-06-10 13:48:45 +02:00
Knut Morten Okstad
99de45c279 Fixed: Expand solution vector for superelement patches on HDF5 2021-06-10 09:21:47 +02:00
Knut Morten Okstad
7f21078fe7 Added: Output of basis for ASMsupel as a lagrangian spider mesh 2021-06-10 09:21:47 +02:00
Knut Morten Okstad
6dc48a87d6 Changed: The projection method prefixes are now extracted directly
from the SIM object inside the HDF5Writer::writeSIM instead of
storing them in a class member - to ensure consistency.
Then we don't need the DataExporter::setNormPrefixes method.
2021-06-10 09:21:47 +02:00
Knut Morten Okstad
65d3e87754 Changed: Cleaned output of spline basis, node mapping, etc. 2021-06-10 09:21:47 +02:00
Arne Morten Kvarving
9a34722eb3 add option to use the h-mesh for projection with subgrid 2021-06-10 08:56:12 +02:00
Knut Morten Okstad
414de77184 Changed: Refinement based on mesh density function now on SIM-level 2021-05-21 15:00:59 +02:00
Knut Morten Okstad
77786ac474 Added: virtual method getElementCenter() in class ASMunstruct 2021-05-21 15:00:04 +02:00
Knut Morten Okstad
9fe3864a4d Added: virtual method evalPoint() in class ASMLRSpline 2021-05-21 14:50:49 +02:00
Knut Morten Okstad
06580f66c7 Changed: Set initial time level for restart runs from previous.
The methods getTimeLevel() and getWritersTimeLevel() are then
no longer needed and removed for the sake of clarity.
Also removed unused method realTimeLevel(), which is incorrect
if used in restart runs with changed data dump stride.
Added: Optional print message when dumping results.
2021-05-10 06:25:55 +02:00
Arne Morten Kvarving
e2fb65447a Simplification in DataExporter
- remove unused members
- use range-based for loops
- remove unnecessary if inside the writer loop
2021-05-08 10:32:48 +02:00
Knut Morten Okstad
ff9b50f033 Added: Alternative superelement file format 2021-04-27 14:34:58 +02:00
Knut Morten Okstad
491246b11c Fixed: Also set nel after refining the mesh.
Changed: LR::extendControlPoints returns -1 on error and 0 if empty.
2021-04-25 11:55:19 +02:00
Knut Morten Okstad
fd80d78c22 Fixed: Clear all (including shared) FE arrays after refinement 2021-04-24 20:23:26 +02:00
Arne Morten Kvarving
f4026d20d0 fixed: need to copy projBasis as well 2021-04-19 09:33:14 +02:00
Knut Morten Okstad
d7f6c8c637 Added: class ASMsupel representing a reduced-order superlement patch 2021-04-08 15:00:44 +02:00
Knut Morten Okstad
cc7bb98879 Added: Coordinate check in the inter-sim point coupling 2021-04-08 15:00:44 +02:00
Knut Morten Okstad
c6fa4730d6 Changed: Store the rigid master points in a map with coordinates 2021-04-08 15:00:44 +02:00
Knut Morten Okstad
7c2d6c4fad Fixed: Wrong column index in getEndPoints() caused crash 2021-04-08 15:00:44 +02:00
Knut Morten Okstad
a88fd0ca40 Added: class SIMmultiCpl for monolithic coupled simulators 2021-04-08 15:00:44 +02:00
Knut Morten Okstad
db16b4209c Added: Methods SIMbase::merge() and SIMbase::initSystem() to facilitate
monolithic coupled simulators with a common global equation system.
Changed: SIMbase::getNoDOFs(true) returns the sub-simulator dimension.
2021-04-08 15:00:44 +02:00
Knut Morten Okstad
67fab196a0 Added: SIMinput::getTopItemNodes 2021-04-08 15:00:44 +02:00
Knut Morten Okstad
7525639f84 Added: Methods to shift all global node and element numbers by a constant.
Changed: ASMbase::renumberNodes() accepts that not all nodes are present
in the old2new map if the renumGN argument equals 2.
2021-04-08 15:00:44 +02:00
Knut Morten Okstad
e398a6964e Added: Override the addRigidCpl method in ASMs2DC1 and ASMs1DC1
accounting for C1-continuity requirements.
Changed: Use a separate set of slave DOF numbers to identify those MPCs
which need to be initialized by ASMs2DC1::initConstraints().
Changed: Invert the bool argument of the addMPC and mergeNodes methods.
2021-04-08 15:00:44 +02:00
Knut Morten Okstad
802ad3c441 Added: Interface for the preprocess() method in SIMadmin.
Changed: SIMadmin::printHeading() is now public.
2021-04-08 15:00:44 +02:00
Knut Morten Okstad
e92bf6e65a Moved the loadXML method from SIMadmin to XMLInputBase 2021-04-08 15:00:44 +02:00
Knut Morten Okstad
05a6a068a3 Changed: Replaced getMyElementNums() by getGlobalElementNums() and
use getGlobal[Element|Node]Nums in the unit tests, for consistency.
Also use static functions instead of Lambdas in file scope.
2021-04-08 15:00:44 +02:00
Knut Morten Okstad
a8f6662020 Changed: Let IntegrandBase::parse() return false by default 2021-04-08 11:50:56 +02:00
Knut Morten Okstad
4ac708f596 Changed: The congruence transformation function for symmetric matrices
should work the other way around, assuming the Tn-matrices transforms
from local to global system and not the opposite.
2021-04-08 07:00:12 +02:00
Knut Morten Okstad
91c4bdd9fe Added: Input stream operator for numerical vectors and matrices 2021-04-08 07:00:12 +02:00
Knut Morten Okstad
52a70fe8ed Changed: Extract only the control point variables if ngnod = -2.
Fixed: Assume 3 nodal DOFs for rigid coupling master nodes if nsd = 1.
Fixed: Don't use the extractPatchSolution method for projected fields.
2021-03-26 11:37:07 +01:00
Knut Morten Okstad
91c75b7c89 Fixed: Account for boundary MPC couplings when choosing stripe direction 2021-03-25 14:11:54 +01:00
Knut Morten Okstad
a7987649e4 Changed: Keep track of the partId as VTF class member 2021-03-07 20:30:10 +01:00
Knut Morten Okstad
cbb008cbee Changed: No need for virtual methods after retiring class VTU 3 years ago 2021-03-07 17:12:27 +01:00
Knut Morten Okstad
28d0dac76b Changed: Don't write state info when itype < 0 2021-02-10 09:05:50 +01:00
Knut Morten Okstad
dec5e2e21e Added: Option to set polynomial order to specified value 2021-02-10 09:05:50 +01:00
Knut Morten Okstad
c80e2ea1c3 Added: Overloaded addLine method 2021-02-10 09:05:50 +01:00
Knut Morten Okstad
5634f6e312 Added: getEntity and getDiscretePoint.
Changed: setNeumann and setPropertyType are public.
2021-02-10 09:05:50 +01:00
Knut Morten Okstad
cc10c75c35 Fixed: ASMs3D::connectbasis with norient=5 2021-02-10 09:05:50 +01:00
Knut Morten Okstad
64164d22fa Changed: Allow for multiple <patchfile> tags 2021-02-10 09:05:50 +01:00
Knut Morten Okstad
f507e8dff6 Fixed: Don't merge identical MPCs from adjacent patches 2021-02-10 09:05:50 +01:00
Knut Morten Okstad
a8056c7296 Fixed: Move the resetNumbering(ngnod) call before calling
the preprocessBeforeAsmInit method, in case the latter
wants to add extra nodal points due to rigid couplings, etc.
2021-02-10 09:05:50 +01:00
Knut Morten Okstad
4278481870 Changed: Using set instead of pair to record Lagrange multiplier nodes.
Added: Methods addRigidCpl and constrainXnode in ASMbase.
Added: Property code RIGID.
2021-02-10 09:05:50 +01:00
Knut Morten Okstad
4926a5f318 Remove some superfluous include statements.
Code in LinAlg should ideally not have any dependencies to ASM.
2021-02-10 09:05:50 +01:00
Knut Morten Okstad
22f553ce4b Changed: Non-virtual SIM3D::addConstraint --> addLineConstraint.
Changed: Public method SIMinput::addConnection no longer virtual.
It now invokes the virtual method connectPatches using an ASM::Interface
object to pass the connectivity definition instead, for convenience.
Added: Offset attribute on the topology tag.
2021-02-10 09:05:50 +01:00
Knut Morten Okstad
f1e944bead Added: Discrete topological points without patch-connection.
Changed: Store dyn-casted pointers in a local array for reuse.
Changed: Using return-vale of set::insert instead of separate count.
2021-02-10 09:05:50 +01:00
Arne Morten Kvarving
c9269956cd changed: make isRefined an int
256 refinements can happen, in particular in fracturedynamics.
this leads to overflow and a very confusing error message.
2021-02-10 08:48:57 +01:00
Arne Morten Kvarving
761cbcb1c3 fixed: set appropriate linsolver params for L2 projection 2021-02-08 14:04:17 +01:00
Arne Morten Kvarving
2a29e44bb8 added: implement ASMLRSpline::getParameterDomain 2021-02-08 08:40:56 +01:00
Arne Morten Kvarving
5a9e0194df added: (non-internal) L2 projection support for functions 2021-02-08 08:40:56 +01:00
Arne Morten Kvarving
ac87aa2a52 fixed: result point output with graph partitioning 2021-01-29 11:13:25 +01:00
Arne Morten Kvarving
49fc54789f added: add graph partitioning handling in ASMu3Dmx boundary integrals 2021-01-29 11:13:15 +01:00
Arne Morten Kvarving
00b36d2c49 fixed: we do not want to increase the index here
it's done by the for-loop. copy-paste issue
2021-01-29 11:13:15 +01:00
Arne Morten Kvarving
e7bb2bb509 fixed: set the package in petsc pc blocks 2021-01-27 18:35:14 +01:00
Arne Morten Kvarving
dc2c682e25 add missing doxy 2021-01-27 15:07:42 +01:00
Arne Morten Kvarving
0731179e31 fixed: missing return value without HDF5 2021-01-27 15:07:42 +01:00
Arne Morten Kvarving
0b63ec3e93 added: ability to put terminal log in HDF5 2021-01-25 13:43:00 +01:00
Arne Morten Kvarving
bdf5e31c3e fixed: avoid unnecessary expensive refinement parameter calculations
if we are shared, these are complete ignored further down. no reason
to calculate them.

useful for adaptive multi-patch fracture dynamics
2021-01-21 14:29:50 +01:00
Arne Morten Kvarving
f6c847cf75 fixed: specify number of dofs for the solution
cannot assume all vectors have the same amount of fields
as the simulator has primary dofs
2021-01-21 11:33:32 +01:00
Arne Morten Kvarving
a83bfb0b28 fixed: element indices should start at 1 2021-01-21 11:31:28 +01:00
Arne Morten Kvarving
064a27d4ab fixed: ensure we have a non-empty element list
this to flag that partitioning is enabled. we use -1
as this is an invalid element id.
2020-12-04 14:12:54 +01:00
Arne Morten Kvarving
a243650ceb fixed: remove unnecessary myElms member in ASMu3D
this was forgotten in the original commit. after a review
comment myElms were added to ASMbase, and I forgot
to remove it in ASMu3D.
2020-12-04 12:50:47 +01:00
Arne Morten Kvarving
03e565e3a5 added: allow specifying solver params for L2-projection 2020-12-03 12:39:17 +01:00
Arne Morten Kvarving
5578028655 changed: allow subclasses to register additional functions for VTF output 2020-12-02 14:41:59 +01:00
Arne Morten Kvarving
6a2959d9ca fixed: set fe.iel in ASMsxDLag::evalSolution 2020-11-10 13:15:09 +01:00
Arne Morten Kvarving
5a671fa594 added: allow specifying a function for beta
t holds the adaptive step number. this allows for
flexible specification of how much to refine at each step.
2020-10-22 13:21:18 +02:00
Arne Morten Kvarving
4faf645010 added: ability to customize LRSpline same-function tolerance 2020-10-22 12:29:01 +02:00
Arne Morten Kvarving
15daa0ae92 added: write methods to ASMxDLag/Tri
(mainly) used for storing the FEM models in HDF5
2020-10-01 14:31:34 +02:00
Arne Morten Kvarving
20a7e94f30 fixed: support partitioned models in HDF5Writer 2020-09-25 09:46:24 +02:00
Arne Morten Kvarving
fa9ab988ea fixed: set parameters in ASMuxD(mx)::evalSolution 2020-09-25 08:29:49 +02:00
Arne Morten Kvarving
885148c092 fixed: also pass parameters to scalar sol 2020-09-25 08:29:49 +02:00
Arne Morten Kvarving
0ad7e16d80 added: allow non-expression functions as part of an anasol with functions 2020-09-25 08:29:49 +02:00
Arne Morten Kvarving
33a1e7d53f added: support for Chebyshev interpolants as functions 2020-09-25 08:29:49 +02:00
Arne Morten Kvarving
075e067e7d added: support for saving the local-to-global node mapping in HDF5
this is on a per-basis level, ie, not interleaved on a per-patch
basis as used in IFEM
2020-09-15 09:16:19 +02:00
Arne Morten Kvarving
e905d4fc4b track assembled state in petsc
use this to fix direct solve for preassembled sparsematrix
2020-07-09 14:39:30 +02:00
Arne Morten Kvarving
a1286ab949 Added: Allow using PETSc solvers with CGL2 version 2 2020-07-09 14:39:30 +02:00
Knut Morten Okstad
6cb059b455 Changed: Use element matrices in global L2 for efficiency 2020-07-09 14:37:28 +02:00
Arne Morten Kvarving
67e18c1288 added: calculate grid parameters in ASMs3DLag without using spline object 2020-07-08 10:27:59 +02:00
Arne Morten Kvarving
8e26a3903a
added: setCoord to ASMs3DLag (#425)
similar to ASMs2DLag
2020-07-06 15:30:03 +02:00
Arne Morten Kvarving
24002aec70 changed: log multithreading info to IFEM::cout 2020-07-01 10:17:29 +02:00
Arne Morten Kvarving
b5297e1b55 fix solution transfer for mixed models 2020-06-30 12:56:37 +02:00
Arne Morten Kvarving
57228365dd added: print reason for stopping adaptive cycles 2020-06-30 11:47:38 +02:00
Arne Morten Kvarving
35c8464a2b fixed: TestPETScMatrix.Assemble
for some reason newer PETSc requires an explicit call to zero out the
matrix.
2020-06-12 15:52:23 +02:00