Commit Graph

370 Commits

Author SHA1 Message Date
timovanopstal
9ef54c37cf add: skew-symmetric integrand, make code DRY, fix: conservative 2016-12-16 07:09:25 +01:00
timovanopstal
48801295b5 add: enum for form of convection operator 2016-12-16 07:09:25 +01:00
Knut Morten Okstad
e0bfbe7247 Added: New class SIMinput sitting between SIMbase and SIMoutput in the
SIM-hierarchy. It contains all general model definition methods (input-
file parsing, property setup, initial conditions, adaptive refinement).

Changed: Renamed the virtual createModelGenerator to getModelGenerator
plus some cosmetics in console feedback during default model generation.

The latter will require updates of the apps relying on model generators
and regression tests because of cosmetic correction of console feedback.
2016-12-15 14:17:18 +01:00
Knut Morten Okstad
1a43e1c694 Changed: Renamed the base class SIMinput to SIMadmin 2016-12-13 14:55:35 +01:00
Arne Morten Kvarving
faa0e9adf0 add CompatibleOperators::(Residual|Weak)::Convection 2016-12-05 09:54:21 +01:00
Arne Morten Kvarving
92b01e54a4 changed: unify (EqualOrder|Compatible)Operators::Residual::Laplacian
use positive sign in both
2016-11-18 16:04:41 +01:00
Arne Morten Kvarving
17bb95ace9 added: CompatibleOperators
implements common operators for div-compatible discretizations
2016-11-17 15:52:54 +01:00
Arne Morten Kvarving
c9bc665861 changed: make WeakOperators a class with static functions
allows for templating over operator classes
2016-11-17 15:43:40 +01:00
Arne Morten Kvarving
5dac04e420 simplify WeakOperators and ResidualOperators interfaces
assumes that everything is always split by field. thus
we do not need the cmp/nf/scmp mess.
2016-11-17 15:43:40 +01:00
Kjetil Andre Johannessen
8d81496e68 Merge pull request #69 from akva2/fix_lr_interpolation_hdf5
Fix two LR issues
2016-11-10 15:14:11 +01:00
Arne Morten Kvarving
6e3f35a2df fixed: wrong indices for projected b.c's in ASMu2D 2016-10-20 17:22:22 +02:00
Arne Morten Kvarving
41116a0d84 fixed: make getCorner in ASMu2D behave like other ASMs
namely have it return the actual node id for a basis'
corner, and not the node id within the basis.
2016-10-20 13:01:48 +02:00
Arne Morten Kvarving
d7575b0397 fixed: need to pass the solution vector on instance creation
setting it in solveStep is too late as exported fields are
registered for output before
2016-10-18 14:14:07 +02:00
Knut Morten Okstad
49bcd4f618 Changed: Removed reimplementation of identical createGeometry methods in the
ModelGenerator sub-classes. Instead, the createG2 method is made virtual.
Also let the createTopology method have an empty default implementation such
that it does not need to be overridden in the single-patch default generators.

And please don't use the override keyword (at least not in the IFEM kernel)
which is not supported i gcc 4.6. I still use that compiler for debugging.
2016-10-11 09:54:46 +02:00
timovanopstal
ff76b83c98 add: variations of stabilization params w.r.t. velocity 2016-09-28 10:26:05 +02:00
Arne Morten Kvarving
ee445eb42e fix multipatch generators
order of arguments and defaults was different between
SIMxD implementations and when it was made virtual, updating
this code was apparently missed.
2016-09-15 16:15:34 +02:00
timovanopstal
2c154138db fix: add missing include<array> 2016-09-14 10:36:20 +02:00
Arne Morten Kvarving
1adfcf1804 added: convenience wrapper class for multi-patch generator usage in applications
note: does not instance for 1D
2016-09-12 11:14:21 +02:00
Arne Morten Kvarving
66d33ff9e5 added: multi-patch model generator for 2D and 3D 2016-09-08 07:30:00 +02:00
Arne Morten Kvarving
f56f965afc changed: use parametrized tests in SIMNodalConstraint
less code duplication and prettier ctest output
2016-09-02 13:29:33 +02:00
Arne Morten Kvarving
e984835bd7 changed: use HAVE_MPI preprocessor symbol instead of PARALLEL_PETSC
MPI support will not be linked to PETSc in the future.
2016-09-02 09:14:40 +02:00
Arne Morten Kvarving
1b5330791c Fixed: Allow using the <refine> and <raiseorder> keywords in parallel.
Translates to local patch index and ignores patch entries on other processes.
The nGlPatches member of SIMbase is now default equal to myModel.size() for
serial runs, such that we don't need to check that it is non-zero all the time
(except for in getLocalPatchIndex, which may be called before it is set).
The latter is now treated as an error conditions and indicates missing
partitioning information for parallel runs.
2016-09-02 09:12:02 +02:00
timovanopstal
bf365b0e30 rm: CFDenums.h has been moved to Stokes app 2016-08-17 16:37:49 +02:00
Arne Morten Kvarving
048ed57a03 Added: Additional convergence check in SIMCoupledSI,
with possibility for application-specific convergence criteria.
Changed: The order of the SIM::ConvStatus enum values reflects severity,
such that may do (stat <= SIM::DIVERGED) to catch both DIVERGED and FAILURE.
2016-08-05 15:24:25 +02:00
Knut Morten Okstad
c536ff1610 Fixed: NavierStokes did not build because of missing includes in AppCommon.h.
Resolve this by moving the parse implementation to a C-file (not a template).
Also added a default constructor initialising the dim member.
Removed obsolete file ResidualOperators.C
2016-08-04 10:39:53 +02:00
Arne Morten Kvarving
ed992a2ca1 added: base class for pre-parsing in applications
- handles -2D/-3D (can be specified in <geometry> tag)
- handles -LR (can be specified in <patchfile> tag)
2016-07-15 16:58:51 +02:00
Knut Morten Okstad
ad1a22c51e Fixed: Adaptive linear elasticity was broken in the attempt to generalize
AdaptiveSIM to also handle time-dependent problems. This is now reverted
as this class is not well suited for that class of problems.
It was intended for static linear problems only.
2016-06-28 21:00:07 +02:00
Arne Morten Kvarving
acc9be305f Fixed: Accidentially removed code for non-homogenous dirichlet with LR.
This hunk got lost during refactoring in b3ac7b8188

Also moved the mapping from the {-2,-1,1,2} indices to LR-enums to
the constrainEdge method, to avoid doing that more than one place.
2016-06-28 12:03:06 +02:00
timovanopstal
7f1270acd2 fix: follow standard definition of G-matrix. 2016-06-27 14:48:13 +02:00
Arne Morten Kvarving
80f60b9cfa added: jenkins build scripts with downstream building support 2016-05-26 17:15:09 +02:00
Arne Morten Kvarving
046460fdfd Changed: Look one more level up for in-tree / submodule builds.
The BeamSim and Nonlinear apps are now assumed to be sub-folders
of the BeamEx and FiniteDeformation folders, respectively.
2016-04-28 22:57:20 +02:00
Arne Morten Kvarving
8088bcddbe fixed: use length of the appropriate vector 2016-04-22 14:46:31 +02:00
Knut Morten Okstad
77c9151747 Changed: Replaced saveResults by saveState which also can save the updated mesh 2016-04-07 10:32:01 +02:00
Arne Morten Kvarving
43ee2ed738 Added: Default values on the arguments interval, steps and append.
Changed: Method saveResults is moved from SIMSolverTS to SIMSolver.
Fixed: Let hdf5 output respect the saveInit flag in SIMSolver.
2016-04-07 10:32:01 +02:00
Knut Morten Okstad
e95e35ec1f Added: Input parameter max_prediction which controls the maximum number of
prediction cycles, that is the mesh is checked for refinement at the end of
each cycle and they are repeated if the mesh is refined up to the specified
number of times (default is 1). If less than max_prediction cycles are needed,
the forwarding cycle (with result saving at each step) are skipped.
2016-04-07 10:32:01 +02:00
Knut Morten Okstad
060ac8b2f6 Added: Method TimeStep::reset() and use this when restarting the adaptive loop
a certain number of steps in the past. Just copying the TimeStep instance
won't work if the time history consists of several steps with varying dt.
2016-04-07 10:32:01 +02:00
Arne Morten Kvarving
77f06568ab Added: Time-slab adaptive solver template 2016-04-07 10:32:01 +02:00
Arne Morten Kvarving
a61accf93d Added: A dedicated solver template for stationary adaptive simulations.
Using this to get rid of the solverhandler mess in SIMSolver.
2016-04-07 10:32:01 +02:00
timovanopstal
ecdffb743c add: theta time stepper 2016-03-01 12:31:51 +01:00
Knut Morten Okstad
f095f4059a Changed: The checking for existence of, and the adding of application folders
now better reflect the actual inter-dependency among the various apps
2016-02-27 12:29:28 +01:00
Arne Morten Kvarving
c200bf3e68 changed: make some operators templates
velocity gradient can be either a matrix or a tensor
2016-02-22 13:26:07 +01:00
Arne Morten Kvarving
ca6c0c6f43 changed: give preprocessBeforeAsmInit a bool return value 2016-02-08 14:29:34 +01:00
Arne Morten Kvarving
ea242fda48 prepare buildsystem for separate repos
- generate cmake config files
- refactor testing to make it reusable (downloads gtest if used from
  applications)
- split of flags/definitions
- install Apps/Common with main library
2016-01-31 14:19:09 +01:00
Arne Morten Kvarving
3b07efffc2 reorganize NavierStokes application layout
- move Stokes application to Apps/Stokes
- move FSI application to Apps/FSI
- rename old Stokes directory NavierStokes
2016-01-31 14:19:08 +01:00
Knut Morten Okstad
536ed75ae8 Reorganised the Elasticity sources into libraries to better facilitate reuse.
This also includes moving the GETBeam sources from the 3rdparty folder.
2016-01-31 14:19:08 +01:00
Arne Morten Kvarving
cd4a6e0150 Renamed SIMCoupledSemiImplicit.h to SIMCoupledSI.h
Also rewrite the template to use the convergence tests of the
nonlinear/newmark solvers instead of adding another on top.
2016-01-31 14:19:08 +01:00
Timo van Opstal
6b3954c502 added: COMPATIBLE integrand 2016-01-31 13:49:46 +01:00
Arne Morten Kvarving
b725819af4 added: SIMNodalConstraint
this is a wrapper for SIMxD which equips it with the
ability to constrain a dof on a patch / face / edge / vertex
to the same dof in a given vertex.

useful for applying rigid body motion to parts of a model.
2016-01-31 13:49:45 +01:00
Knut Morten Okstad
f0ed6a133a Changed: Simplified SIMsolver::parse, no need to check tag name here.
Added: Option in SIMSolver::solveProblem to save initial configuration to VTF.
Fixed: The SIMCoupled destructor must nullify the VTF file of the second
simulator since it points to the same VTF object as the first simulator.
2016-01-31 13:49:45 +01:00
Knut Morten Okstad
3de9c0440f Added: Error message when non-registered vector or field detected.
Changed: getName is now a virtual method in SIMdependency.
Changed: Default constructor for struct Dependency now accepts arguments.
2016-01-31 13:49:44 +01:00