Use FEMBeam.jl to solve beam problems. Added an example, where
natural frequencies of frequencies of 3d frame structure are
calculated. Some minor modifications to Modal analysis is done to make
Xdmf writing of 6 dof nodes work.
Development of auto-differentiated mortar contact mechanics in 2D is moved to own separate package, MortarContact2DAD. Other changes are similar to what is done with MortarContact2D: elements are added to problems using `add_slave_elements!` and `add_master_elements!` instead of `add_elements!`, to make interface more explicit. Also, problem name is `Contact2DAD`, so the dimension is now explicitly stated in problem name. (Also have `Mortar2DAD`, compare to the `Mortar2D` and `Contact2D` of `MortarContact2D.jl`.)
Moved plane contact related stuff to own separate package
`MortarContact2D.jl`, where the development continues.
The following changes to test files are done:
1) Problem name for plane mortar coupling is `Mortar2D` (was `Mortar`
before), and later on 3d coupling will be `Mortar`. So the dimension
of coupling operator is explicitly given in a problem name.
2) Before elements to coupling was defined using
```julia
update!(problem.elements, "master elements", master_elements)
add_elements!(problem, [slave_elements; master_elements])
```
Now, explicitly give master and slave elements as
```julia
add_slave_elements!(problem, slave_elements)
add_master_elements!(problem, master_elements)
```
Keep on mind that Lagrange multipliers are in slave side.
Slicing is very expensive operation on sparse matrices. Avoid slicing
by calculating matrix product `K_red = C1*K*C1`, where C1 is diagonal
matrix. This should be much cheaper.
* refactored code for solvers.
* Added elementary tests for least-squares fitting of strain and stress fields
* A more realistic postprocess + Xdmf writing test
* removed debug keyword argument from test
* Rewrite update_xdmf!
New function to update Xdmf file no longer takes Solver object but
xdmf, problem, time and fields to write, for example
julia> update_xdmf!(xdmf, problem, 0.0, ["displacement", "temperature"])
All problems are written separately and put together into one
SpatialCollection, allowing to have more structured Xdmf and making
it easier to write complicated field configurations. Support for Xdmf
API 3.0 added.
* Support for Tensor6 field writing
* moved update_xdmf! to io.jl
* Removed some empty files
* Not use old Postprocessor, obsolete code.
* Not use old XDMF (obsolete code). Fixed test.
* removed some postprocessing to pass test, maybe we should drop abaqus.jl from code as obsolete
* add function get_temporal_collection back, it's used by update_xdmf of modal solver
* postprocess of boundary problems also
* added test for contact pressure. dl+quad test output was written in wrong file, fixed.
* postprocess for contact pressure
* contact pressure postprocess
* with boundary problems always store also the primary unknown field
* Change "reaction force" -> "lambda"
* testing postprocess of reaction force also
* sign convention