- Jan 12, 2025
-
-
Sander, Oliver authored
-
- Jan 07, 2025
-
-
Sander, Oliver authored
It is default-implemented in LocalDensity itself, and therefore density implementations don't have to implement it themselves unless they need to do something nonstandard.
-
- Jan 06, 2025
-
-
Sander, Oliver authored
Rather than just on the type for points in the domain. The point type is not enough: For example, if the density involves a coefficient function given as a GridView function, then the density has to be able to bind the local coefficient function to the correct element, for which it has to know the element type. Integration domains can be elements (i.e., Codim<0>::Entity) or Intersections. The actual bind method will follow in a separate commit.
-
Sander, Oliver authored
-
Sander, Oliver authored
I suspect that calling the density through LocalDensity::operator() doesn't work yet, because the GFE function derivatives are not transformed correctly from the reference to the grid element. Therefore that new method still aborts with a deliberate error message, until I have the time to check.
-
- Jan 04, 2025
-
-
Sander, Oliver authored
-
Sander, Oliver authored
This allows to fix the incorrect coordinate type that was expected for evaluating the density.
-
Sander, Oliver authored
Currently, densities only get the type used for coordinates of the integration domain. However, this is not enough: The complete domain must be known, and this domain can be either a grid element or a grid intersection. As a first small step, this patch introduces ElementOrIntersection as a template parameter of the CosseratShellDensity class.
-
Sander, Oliver authored
This is one step towards turning SurfaceCosseratEnergy into a generic SurfaceIntegralEnergy class.
-
Sander, Oliver authored
They are unused -- all code uses the space-dependent parameters.
-
Sander, Oliver authored
For my current clang 19.1.5 they are an error.
-
Sander, Oliver authored
-
- Dec 30, 2024
-
-
Sander, Oliver authored
This can be used in makeComposedGridFunction to turn quaternion-valued functions to matrix-type ones, and vice versa.
-
- Nov 15, 2024
-
-
Sander, Oliver authored
-
Sander, Oliver authored
Previously, the writer requested an FE basis to represent the director vectors. With the help of ComposedGridViewFunction this patch allows to avoid this extra basis, which makes for a much nicer interface for CosseratVTKWriter.
-
- Nov 06, 2024
-
-
Sander, Oliver authored
The NonplanarCosseratShellEnergy class contains a reimplementation of the energy density of CosseratShellDensity. The code is much easier to understand and maintain if the density implementation of CosseratShellDensity is used instead.
-
Sander, Oliver authored
-
Sander, Oliver authored
-
Sander, Oliver authored
... and with constant Lamé parameters. In many applications there are constant, and it is convenient to be able to exploit that.
-
- Nov 05, 2024
-
-
Sander, Oliver authored
That is one step towards splitting off the energy density into a separate class. Also, it helps to unify the code paths for the different grid dimensions in cosserat-continuum.cc
-
Sander, Oliver authored
And use it in the dim==dimworld part of cosserat-continuum.cc.
-
- Oct 07, 2024
-
-
Sander, Oliver authored
The ugly preprocessor switch is still there, but I think the method is more readable now.
-
Sander, Oliver authored
The BulkCosseratDensity class implements three types of curvature tensors. Previously, the preprocessor was used to select the one to be actually used. This patches removes the preprocessors checks and implements run-time switches instead.
-
- Oct 01, 2024
-
-
Sander, Oliver authored
Because the part that computes the curvature energy from the wryness tensor is identical for all curvature tensors that appear in this implementation.
-
Sander, Oliver authored
-
- Sep 07, 2024
-
-
Sander, Oliver authored
Instead, use LocalIntegralEnergy and the newly introduced densities for bulk models or planar shell models. While doing so, give an error message when non-trivial volume loads are requested. I have no example file that actually uses them at the moment, and just by looking at the code I find it hard to believe that they actually worked. Getting them to work will mean having introduce a density for volume loads, which don't want to do until I need them. Since this is the last use of the CosseratEnergyLocalStiffness class, this patch remove the entire class as well.
-
- Sep 06, 2024
-
-
Sander, Oliver authored
-
- Sep 01, 2024
-
-
Sander, Oliver authored
It does not use the main class CosseratEnergyLocalStiffness, but only the small helper class to access local finite elements from different types of basis trees. I am not very happy about this helper class, but let's be pragmatic and simply copy it to nonplanarcosseratshellenergy.hh (with a new, unique name).
-
Sander, Oliver authored
ADOL-C really only has fmin. I don't know why this worked before.
-
Sander, Oliver authored
The old implementation relied on assignment of FieldMatrix from scalar, and for some strange reason that stopped working.
-
Sander, Oliver authored
This removes one use of the CosseratEnergyLocalStiffness class, which is scheduled for complete removal.
-
- Aug 30, 2024
-
-
Sander, Oliver authored
-
Sander, Oliver authored
If the grid is 2d we know that determinant is equal to the determinant of the upper-left 2x2 block.
-
Sander, Oliver authored
This extracts the density of the Birsan/Neff Cosserat shell model with planar reference configuration from the CosseratEnergyStiffness class.
-
Sander, Oliver authored
Even though we know that it is always '3'. Still, using gridDim whenever that is meant is more expressive than '3'.
-
Sander, Oliver authored
Rather than keeping a duplicate implementation of the bulk Cosserat density.
-
- Aug 22, 2024
-
-
Sander, Oliver authored
Energies of particular models should not implement external loads themselves, because that would lead to a lot of code duplication (and possible inconsistencies). A one step towards that goal, allow to construct a CosseratEnergyLocalStiffness object without external loads.
-
Sander, Oliver authored
Previously, the NeumannEnergy class assumed that the grid dimension was equal to the world dimension. This is not the case for shells, where the grid is 2d but the world is 3d. The present patch generalizes to code to also allow for 2d grids.
-
Sander, Oliver authored
Previously, the method basically hand-implemented a writer for VTK files. Using dune-vtk instead leads to much shorter and simpler code, and gives us access to all the dune-vtk niceties, like binary files and high-order grid cells.
-
- Aug 21, 2024
-
-
Sander, Oliver authored
Rather than the grid itself. Because the grid view is all that a writer needs to know about.
-