1

(8 replies, posted in Developers Discussion)

The file "oofem_version.h" is generated by running Cmake properly. Delete the Cmake cache and give another try.

2

(8 replies, posted in Developers Discussion)

SaeidM wrote:

I can't compile OOFEM anymore after the recent update, so I can't run and see if this input file works

Now that devel branch has been merge in master, you should be able to compile in Windows.

3

(8 replies, posted in Developers Discussion)

Hi, thanks for your reply. I noticed there's no documentation on that, can you share a sample model with plasticity materials?

4

(8 replies, posted in Developers Discussion)

Hi all,
I write about FiberedCrossSection, for which I made a trial improvement that can be seen here:
https://github.com/johnnyontheweb/oofem … 2885a10377

by adding the possibility to specify areas and positions for fibers, hence the class is not limited to rectangular fibers (for instance, think about a round cross section subdivided in triangular portions). Please find attached a test input deck.

I haven't already asked a Pull Request, simply because I was looking for material models to use with; it seems only IsoLE is actually supported (the so called _Fiber material mode). Can you confirm? Has it been used before in some of your scientific works? I cannot find any sample other than fiberedcs01.in in tests/sm.

As far I understand, each fiber material gives {sigmaX, tauXY, tauXZ}, hence also shear and torsion for beams can be integrated over the fibers. If so, every 3d material in OOFEM can be interfaced with fiber section by providing:
- stresses: just {sigmaX, tauXY, tauXZ}
- tangent material matrix 3x3: just set the diagonal as {d.at(1,1), d.at(4,4), d.at(5,5)}, where d is the Jacobian matrix. The material stiffness d.at(1,1) does not have mixed terms since other Eps and Gamma are 0. In addition, in isotropic elastic conditions d.at(4,4)=d.at(5,5)=G. As a consequence, it could make sense also having orthotropic material in fibers, just to have different Gs, but in this case fiberedcs will return the wrong stiffness matrix, because tangent is provided for torsion by using d(2,2) only.

Is it as simple as that or am I missing something? I kindly ask your advice in order to plan to add the needed code for _Fiber interface in other materials (e.g. Concrete02, etc.).
thanks in advance

EDIT:
just to clarify: the question for implementation is relative the material that redefines material mode and don't have support for _Fiber (StructuralMaterial has it, hence if not overloaded, all good).

5

(3 replies, posted in General Help)

I finally got something new about this problem.
The values compared by errorcheckingmodule are of type:

ENUM_ITEM_WITH_VALUE(IST_ShellMomentTensor, 9) 
ENUM_ITEM_WITH_VALUE(IST_ShellForceTensor, 10)

but they're not moment and forces per unit lenght. Looking in the code, they're stresses (in different order than the stress vector).
Shouldn't they multiplied by the thickness t?
In my copy of the code I made such correction so far, hence such difference is reported. But, in any case, I don't know where reference values have been taken, so I'm asking clarifications.

6

(2 replies, posted in Developers Discussion)

Hello,
didi you try checking these commits in devel branch?

https://github.com/oofem/oofem/commit/0 … eb4518c320
https://github.com/oofem/oofem/commit/d … a04f43aa2a

read more on:
https://github.com/oofem/oofem/issues/138

the variables mentioned on your error messages have been re-ordered in such commits.
We hope such fixes wull be soon in master branch.

Hello,
I cannot compile oofem with Visual Studio under windows after the changes occurred in 14/15 May 2024, please see:
https://github.com/oofem/oofem/issues/1 … 2119024032

8

(5 replies, posted in General Help)

I compiled a fresh copy of oofem under linux, including your last commits, but I get for nldyn.in:

OOFEM Error exception: Error initializing from user input: Missing keyword "dofs" on input 10
Record: "lumpedmass 2 nodes 1 2 crosssect 1 components 6 1...."

In instanciateYourself (/home/admin/oofem/src/oofemlib/engngm.C:252)

?

9

(5 replies, posted in General Help)

This is not helping at all, the uploaded linDyn model work even with the binaries of the v2.5 on the official site, just tried right now.

Please note that f(t) is NOT missing; maybe you're encountering a problem with file coding (the line 18 ends with "\" which I use on windows to continue reading after carriage return).

10

(3 replies, posted in General Help)

On my copy of the (up-to-date) repo I got errors with layeredcs02.in. It seems I have no changes that can affect this. Please see below the output:

Checking rules...
_______________________________________________________
Warning:Check failed in layeredcs02.out: tstep 2, node 2, dof 2, mode 1:
value is 2.34874846e-03, but should be 5.89140445e-03 ( error is 3.542656e-03 but tolerance is 1.000000e-08 )
In oofem::NodeErrorCheckingRule::check (errorcheckingexportmodule.C:138)
_______________________________________________________
_______________________________________________________
Warning:Check failed in layeredcs02.out: tstep 2, node 3, dof 2, mode 1:
value is 7.39555951e-03, but should be 1.84651546e-02 ( error is 1.106960e-02 but tolerance is 1.000000e-08 )
In oofem::NodeErrorCheckingRule::check (errorcheckingexportmodule.C:138)
_______________________________________________________
_______________________________________________________
Warning:Check failed in layeredcs02.out: tstep 2, element 1, gpnum 1, ist 10, component 1:
value is 4.01732092e+02, but should be 5.28962260e+04 ( error is 5.249449e+04 but tolerance is 1.000000e-02 )
In oofem::ElementErrorCheckingRule::check (errorcheckingexportmodule.C:206)
_______________________________________________________
FloatArray of size : 6
4.017e+02   2.010e+01   0.000e+00   5.494e+03   1.633e+04  -7.136e+01
_______________________________________________________
Warning:Check failed in layeredcs02.out: tstep 2, element 1, gpnum 1, ist 10, component 2:
value is 2.00997493e+01, but should be -6.76645400e+03 ( error is 6.786554e+03 but tolerance is 1.000000e-02 )
In oofem::ElementErrorCheckingRule::check (errorcheckingexportmodule.C:206)
_______________________________________________________
FloatArray of size : 6
4.017e+02   2.010e+01   0.000e+00   5.494e+03   1.633e+04  -7.136e+01
_______________________________________________________
Warning:Check failed in layeredcs02.out: tstep 2, element 1, gpnum 1, ist 10, component 6:
value is -7.13587724e+01, but should be -1.33521715e+04 ( error is 1.328081e+04 but tolerance is 1.000000e-02 )
In oofem::ElementErrorCheckingRule::check (errorcheckingexportmodule.C:206)
_______________________________________________________
FloatArray of size : 6
4.017e+02   2.010e+01   0.000e+00   5.494e+03   1.633e+04  -7.136e+01
_______________________________________________________
Warning:Check failed in layeredcs02.out: tstep 2, element 11, gpnum 1, ist 10, component 1:
value is 1.05792451e+03, but should be 5.28962260e+04 ( error is 5.183830e+04 but tolerance is 1.000000e-02 )
In oofem::ElementErrorCheckingRule::check (errorcheckingexportmodule.C:206)
_______________________________________________________
FloatArray of size : 6
1.058e+03  -1.353e+02   0.000e+00   5.494e+03   1.633e+04  -2.670e+02
_______________________________________________________
Warning:Check failed in layeredcs02.out: tstep 2, element 11, gpnum 1, ist 10, component 2:
value is -1.35329081e+02, but should be -6.76645400e+03 ( error is 6.631125e+03 but tolerance is 1.000000e-02 )
In oofem::ElementErrorCheckingRule::check (errorcheckingexportmodule.C:206)
_______________________________________________________
FloatArray of size : 6
1.058e+03  -1.353e+02   0.000e+00   5.494e+03   1.633e+04  -2.670e+02
_______________________________________________________
Warning:Check failed in layeredcs02.out: tstep 2, element 11, gpnum 1, ist 10, component 6:
value is -2.67043431e+02, but should be -1.33521715e+04 ( error is 1.308513e+04 but tolerance is 1.000000e-02 )
In oofem::ElementErrorCheckingRule::check (errorcheckingexportmodule.C:206)
_______________________________________________________
FloatArray of size : 6
1.058e+03  -1.353e+02   0.000e+00   5.494e+03   1.633e+04  -2.670e+02
_______________________________________________________
Warning:Check failed in layeredcs02.out: tstep 2, element 1, gpnum 1, ist 9, component 1:
value is 7.49270747e+03, but should be -7.49270000e+03 ( error is 1.498541e+04 but tolerance is 1.000000e-02 )
In oofem::ElementErrorCheckingRule::check (errorcheckingexportmodule.C:206)
_______________________________________________________
FloatArray of size : 6
7.493e+03   2.991e+01   1.494e+04  -5.494e+03  -1.633e+04   1.438e+01
_______________________________________________________
Warning:Check failed in layeredcs02.out: tstep 2, element 1, gpnum 1, ist 9, component 2:
value is 2.99103745e+01, but should be -2.99100000e+01 ( error is 5.982037e+01 but tolerance is 1.000000e-02 )
In oofem::ElementErrorCheckingRule::check (errorcheckingexportmodule.C:206)
_______________________________________________________
FloatArray of size : 6
7.493e+03   2.991e+01   1.494e+04  -5.494e+03  -1.633e+04   1.438e+01
_______________________________________________________
Warning:Check failed in layeredcs02.out: tstep 2, element 1, gpnum 1, ist 9, component 3:
value is 1.49443806e+04, but should be 1.10925262e+06 ( error is 1.094308e+06 but tolerance is 1.000000e-02 )
In oofem::ElementErrorCheckingRule::check (errorcheckingexportmodule.C:206)
_______________________________________________________
FloatArray of size : 6
7.493e+03   2.991e+01   1.494e+04  -5.494e+03  -1.633e+04   1.438e+01
_______________________________________________________
Warning:Check failed in layeredcs02.out: tstep 2, element 1, gpnum 1, ist 9, component 6:
value is 1.43778681e+01, but should be -1.43780000e+01 ( error is 2.875587e+01 but tolerance is 1.000000e-02 )
In oofem::ElementErrorCheckingRule::check (errorcheckingexportmodule.C:206)
_______________________________________________________
FloatArray of size : 6
7.493e+03   2.991e+01   1.494e+04  -5.494e+03  -1.633e+04   1.438e+01
_______________________________________________________
Warning:Check failed in layeredcs02.out: tstep 2, element 11, gpnum 1, ist 9, component 1:
value is 7.49270747e+03, but should be -7.49270000e+03 ( error is 1.498541e+04 but tolerance is 1.000000e-02 )
In oofem::ElementErrorCheckingRule::check (errorcheckingexportmodule.C:206)
_______________________________________________________
FloatArray of size : 6
7.493e+03   2.991e+01   2.219e+04  -5.494e+03  -1.633e+04   1.438e+01
_______________________________________________________
Warning:Check failed in layeredcs02.out: tstep 2, element 11, gpnum 1, ist 9, component 2:
value is 2.99103745e+01, but should be -2.99100000e+01 ( error is 5.982037e+01 but tolerance is 1.000000e-02 )
In oofem::ElementErrorCheckingRule::check (errorcheckingexportmodule.C:206)
_______________________________________________________
FloatArray of size : 6
7.493e+03   2.991e+01   2.219e+04  -5.494e+03  -1.633e+04   1.438e+01
_______________________________________________________
Warning:Check failed in layeredcs02.out: tstep 2, element 11, gpnum 1, ist 9, component 3:
value is 2.21850523e+04, but should be 1.10925262e+06 ( error is 1.087068e+06 but tolerance is 1.000000e-02 )
In oofem::ElementErrorCheckingRule::check (errorcheckingexportmodule.C:206)
_______________________________________________________
FloatArray of size : 6
7.493e+03   2.991e+01   2.219e+04  -5.494e+03  -1.633e+04   1.438e+01
_______________________________________________________
Warning:Check failed in layeredcs02.out: tstep 2, element 11, gpnum 1, ist 9, component 6:
value is 1.43778681e+01, but should be -1.43780000e+01 ( error is 2.875587e+01 but tolerance is 1.000000e-02 )
In oofem::ElementErrorCheckingRule::check (errorcheckingexportmodule.C:206)
_______________________________________________________
FloatArray of size : 6
7.493e+03   2.991e+01   2.219e+04  -5.494e+03  -1.633e+04   1.438e+01
_______________________________________________________
Warning:Check failed in layeredcs02.out: tstep 2, reaction forces number 1, dof 2:
value is -3.90425166e+02, but should be 2.25964537e+02 ( error is 6.163897e+02 but tolerance is 1.000000e-04 )
In oofem::ReactionErrorCheckingRule::check (errorcheckingexportmodule.C:344)
_______________________________________________________
_______________________________________________________
Warning:Check failed in layeredcs02.out: tstep 2, reaction forces number 4, dof 2:
value is -1.60957483e+03, but should be -2.22596454e+03 ( error is 6.163897e+02 but tolerance is 1.000000e-04 )
In oofem::ReactionErrorCheckingRule::check (errorcheckingexportmodule.C:344)
_______________________________________________________

11

(3 replies, posted in General Help)

Hello,
I'm trying layeredCS but I got very different results (up to 8 times in terms of displacements) between and layered CS and a simple CS with the same material.
Also, the layeredcs02 is failing the tests.

regards

12

(0 replies, posted in Developers Discussion)

Hi all,
please find the model attached, in which a simple plate (8mm thickness) was modelled with LSpace elements. Buckling analysis is performed, but results are not reliable (first factor over 2800, but it should be around 14).

EDIT: I ran the model with CalculiX also and I gets the same results, then the code seems correct. I would have expected buckling factors close to the ones obtained with a shell model.

13

(5 replies, posted in General Help)

Hello,
with official OOFEM 2.5 for Windows, I'm trying to run the attached files.
-lindyn.in uses DIIDynamic but does not give results, I don't know why
-nldyn.in uses NonLinearDynamic but, unexpectedly, suddenly stops due to convergen issues ("NRSolver failed to solve problem").

The problem is elastic in both cases, a single vertical cantilever beam with lumped mass on the free node (2) and ground motion in x direction.

Can anyone clarify what's happening here?
I would expect, for the same model, the same results with both analyses. In particular I cannot understand why the NonLinearDynamic analysis stops due to convergence in an elastic model.

14

(1 replies, posted in Developers Discussion)

Please see: https://github.com/johnnyontheweb/oofem … cb91410351
and also the previous commit.

I'm looking forward for your check

EDIT: futher correction:
https://github.com/johnnyontheweb/oofem … 12aa782f7e

15

(1 replies, posted in Developers Discussion)

Hi all,
I'm trying to get a gradient thermal distorsion in MITC4 with a StructTemperatureLoad.
While for tr_shell03 everything works, for MITC4 I can't get results.

My guess is that in MITC4 element StructuralElement :: computeResultingIPEigenstrainAt is used, while for tr_shell elements there's SimpleCrossSection::giveGeneralizedStress_Plate.

StructuralElement :: computeResultingIPEigenstrainAt has the fault that only loads of type EigenstrainBVT are considered.

Please find attached both input decks. Do you have any suggestion on how to change code in the best way to make StructTemperatureLoad gradients working also for mitc4?

16

(1 replies, posted in General Help)

I share my tests until now. I also corrected the code to allow the use with solids, please find the correction here: https://github.com/johnnyontheweb/oofem … 0ad435cd9f

There's no way to get it working, maybe I misinterpreted something.

17

(1 replies, posted in General Help)

Hello,
I'm looking for a way to model contact between surfaces of solid elements (mainly LTRspace) in non-structures meshes.
I've found the following samples:
- n2npenalty node to node contact
- n2spenalty node to surface contact (not very clear to be honest, it seems contact segments are necessary)

My questions are:
- is there any sample input deck for lagrangian contact?
- is there the possibility to develop friction at contact? (e.g. by using intmatcoulombcontact ?)

thanks in advance, any sort of learning material is welcome - it seems to me contact is not documented in input manual.

Hello
I revive this thread after a long time, to ask if there's the possibility to run buckling analysis on a deformed state, for example after a nonlinear static analysis for having some loads already applied.
In fact, one may want some permanent loads already applied and not included in the buckling multiplier.

19

(4 replies, posted in General Help)

Thanks for the reply, however this is not working since MisesMat::give does not work as override of the Material base class.
You can easily check this with the input deck provided.

This is the call stack:

     oofem.dll!oofem::Material::give(int aProperty, oofem::GaussPoint * gp) Riga 60    C++
>    oofem.dll!oofem::SimpleCrossSection::give3dBeamStiffMtrx(oofem::MatResponseMode rMode, oofem::GaussPoint * gp, oofem::TimeStep * tStep) Riga 379    C++
     oofem.dll!oofem::Beam3d::computeConstitutiveMatrixAt(oofem::FloatMatrix & answer, oofem::MatResponseMode rMode, oofem::GaussPoint * gp, oofem::TimeStep * tStep) Riga 683    C++

20

(3 replies, posted in Developers Discussion)

bp wrote:

My remark is that PiecewiseLinFunction is pece wise linear function, so its first derivative is piece wise constant and second derivative is always zero.
So it is not correct for  PiecewiseLinFunction to define its nonzero second derivative.

To do so consistently, you need to use different function that approximates your base displacement, which is smooth enough to define nonzero acceleration.

I agree on a theoretical line, but this is also not practical to use different functions that approximates base displacement, since (natural and even synthetical) accelerograms are given as a series of points (time vs. acceleration). If PiecewiseLinFunction is used to represent acceleration, it's not correct to assume a zero displacement history.

21

(3 replies, posted in Developers Discussion)

There's a major problem when applying displacement at base: acceleration at restrained but moving nodes is always zero (see PiecewiseFunction). Velocity Vis calculated by deriving numerically on the time interval, hence acceleration A is always zero in a restrained node.

This is not affecting a common element (F=k*u), but other elements working with V and A will get stuck if one node is restrained (eg. damper connected to the ground).
By now I added a simple additional series to have also acceleration time-history in the same function (see here).

Is this a suitable way? I would have more information about dynamic analyses, especially for applying earthquake records.

Seems solved, please see here

Waiting for your revision

23

(3 replies, posted in Developers Discussion)

Hi all,
in PiecewiseLinFunction, I find

 double evaluateAccelerationAtTime(double t) override { return 0.; } 

and this is obvious if the timeseries function is about displacements.

It's not clear to me if it is actually possible to give acceleration time history as input - if not, could be easily considered to be added or there are some major drawbacks?

It would be a great advantage to work directly wirh accel. input for dynamic analyses.

thanks in advance

ps.
is there a reason why NonLinearDynamic is not documented?

24

(4 replies, posted in General Help)

Hi all,
I'm trying to use the MisesMat for a beam3d element. With the attached input deck I get this error:

_______________________________________________________
Error:property #71 on element 1 and GP 1 not defined
In MisesMat::oofem::Material::give, number: 1 (material.C:60)
_______________________________________________________
No backtrace available

The error says that "G" property is missing from the material, but it should work since theere is  the call for G = linearElasticMaterial.giveShearModulus(); in MisesMat::initializeFrom(InputRecord &ir).

Can you please help on that? thanks in advance

Hello,
please find attached 2 ELASTIC models of a simple cantilever.
1. in "DynNL_linear-TH", a damping coefficient proportional to stiffness is used (named delta)

I get:

____________________________________________________
Selecting Three-point Backward Euler method


Solving       [Step number        1, Time    5.000000e-03]

NRSolver: Iteration ForceError
----------------------------------------------------------------------------
t=0.005  dt=0.005  iter=0      D_u:  7.071e-01  D_v: *0.000e+00  D_w: *0.000e+00  R_u: *0.000e+00  R_v:  7.071e-01  R_w: *0.000e+00
t=0.005  dt=0.005  iter=1      D_u:  2.938e+00  D_v: *0.000e+00  D_w: *3.890e-05  R_u: *0.000e+00  R_v:  1.119e-02  R_w: *0.000e+00
t=0.005  dt=0.005  iter=2      D_u:  5.326e+00  D_v: *0.000e+00  D_w: *3.969e-05  R_u: *0.000e+00  R_v:  1.401e-02  R_w: *0.000e+00
t=0.005  dt=0.005  iter=3      D_u:  2.415e+01  D_v: *0.000e+00  D_w: *2.445e-04  R_u: *0.000e+00  R_v:  6.793e-02  R_w: *0.000e+00
t=0.005  dt=0.005  iter=4      D_u:  2.144e+01  D_v: *0.000e+00  D_w: *1.578e-03  R_u: *0.000e+00  R_v:  8.446e-02  R_w: *0.000e+00
t=0.005  dt=0.005  iter=5      D_u:  3.152e+01  D_v: *0.000e+00  D_w:  7.837e+00  R_u: *0.000e+00  R_v:  1.278e-01  R_w: *0.000e+00
_______________________________________________________
Error:NRSolver failed to solve problem
In NonLinearDynamic::oofem::NonLinearDynamic::proceedStep (nlineardynamic.C:525)
_______________________________________________________
No backtrace available
Total 1 error(s) and 0 warning(s) reported

2. in "DynNL_linear-THnoCk", the damping coefficient proportional to stiffness (delta) is 0. Model runs fine.

Can you please advice in this? The model is elastic, hence there aren't non-linearities.