Elmer electrostatics FEM

About the development of the FEM module/workbench.

Moderator: bernd

User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Elmer electrostatics FEM

Post by bernd »

HoWil wrote: Tue Jul 14, 2020 7:31 pm If it is not possible than it will take 2 to 3 days until I can test :o .
for an example to test you only need to copy the example python module and the mesh into your FreeCAD FEM Mod directory (either in your build or install directory) and it will be available in new examples gui. Use sudhanshus branch https://github.com/Sudhanshu-Dubey14/FreeCAD_sd

For the electrostatic this would be these two files:

https://github.com/Sudhanshu-Dubey14/Fr ... statics.py
https://github.com/Sudhanshu-Dubey14/Fr ... tetra10.py

Should just take less than 5 minutes. Would that work for you?

BTW: since I did not have had elmer on my dev machine on Linux so far and on Windows I do not compile it is what I did lately to test elmer. But this will change ... Since we have started to do a lot of elmer examples these days I started to compile elmer today.
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Elmer electrostatics FEM

Post by bernd »

Download of a file is very easy: go to https://github.com/Sudhanshu-Dubey14/Fr ... statics.py There is a button raw right click on the button and save link as will save the file with its origin file ending on your hard disc. In German (Ziel speichern unter...)
HoWil
Veteran
Posts: 1279
Joined: Sun Jun 14, 2015 7:31 pm
Location: Austria

Re: Elmer electrostatics FEM

Post by HoWil »

bernd wrote: Tue Jul 14, 2020 7:40 pm BTW: since I did not have had elmer on my dev machine on Linux so far and on Windows I do not compile it is what I did lately to test elmer. But this will change ... Since we have started to do a lot of elmer examples these days I started to compile elmer today.
Great!
BTW: I am currently compiling Sudhanshu's branch. Does take long but the other suggestions did not work out straight :o .
User avatar
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Re: Elmer electrostatics FEM

Post by Kunda1 »

bernd wrote: Wed Jul 15, 2020 7:07 am Download of a file is very easy: go to https://github.com/Sudhanshu-Dubey14/Fr ... statics.py There is a button raw right click on the button and save link as will save the file with its origin file ending on your hard disc. In German (Ziel speichern unter...)
@bernd FYI you can give the url directly: https://raw.githubusercontent.com/Sudha ... statics.py
and the use can ctrl+s to save locally.
Also using wget or curl are options as well.

Code: Select all

wget https://raw.githubusercontent.com/Sudhanshu-Dubey14/FreeCAD_sd/femexamples/src/Mod/Fem/femexamples/equation_elmer_electrostatics.py
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
HoWil
Veteran
Posts: 1279
Joined: Sun Jun 14, 2015 7:31 pm
Location: Austria

Re: Elmer electrostatics FEM

Post by HoWil »

for the example "equation_electrostatics_capacitance_two_balls" I get "Error: Missing a mesh object."
EDIT: If I just add a gmsh-mesh than I get "Error: Result file not found." Please see the output of the Report-view

Code: Select all

20:49:37  ERROR: In /build/vtk7-QS5LcC/vtk7-7.1.1+dfsg1/Common/ExecutionModel/vtkDemandDrivenPipeline.cxx, line 707
vtkCompositeDataPipeline (0x56253ac29700): Input port 0 of algorithm vtkExtractGeometry(0x56253dddaeb0) has 0 connections but is not optional.

20:49:37  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:49:37  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:49:40  The SI unit schema m/kg/s is used. Elmer sif-file writing is done in SI-units.
20:49:40  'Coordinate Scaling = Real 0.001' was inserted into the solver input file.
20:49:40  'Coordinate Scaling Revert = Logical True' was inserted into the solver input file.
20:49:40    ElementDimension: 3
20:49:40    /home/wilfried/bin/gmsh/gmsh-4.4.1-Linux64/bin/gmsh
20:49:41  Solver binary path: /home/wilfried/bin/ElmerFEM_compile/20200625-elmer-dev-coordinate-scaling-revert/elmer-install/bin/ElmerGrid 
20:49:43  Solver binary path: /home/wilfried/bin/ElmerFEM_compile/20200625-elmer-dev-coordinate-scaling-revert/elmer-install/bin/ElmerSolver_mpi 
20:49:44  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:49:44  Exception in thread Thread-205:
Traceback (most recent call last):
  File "/usr/lib/python3.7/threading.py", line 926, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.7/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/task.py", line 118, in protector
    self.run()
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/elmer/tasks.py", line 145, in run
    self.solver.ElmerResult.read(postPath)
TypeError: argument 1 must be str, bytes or bytearray, not None
20:49:44  
for "equation_elmer_electrostatics" I get the following output in the Report-view (cutted because of a warning in the forum stating "Your message contains 130659 characters.The maximum number of allowed characters is 60000."):

Code: Select all

20:26:08  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:08  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:08  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:08  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
...
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 508, in slotChangedObject
    self._checkAnalysis(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 552, in _checkAnalysis
    self._resetAll(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 569, in _resetAll
    if analysis == m.analysis:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:09  Save FreeCAD file for equation_elmer_electrostatics_elmer analysis to /tmp/FEM_examples/equation_elmer_electrostatics_elmer.FCStd
.20:26:09  The SI unit schema m/kg/s is used. Elmer sif-file writing is done in SI-units.
20:26:09  'Coordinate Scaling = Real 0.001' was inserted into the solver input file.
20:26:09  'Coordinate Scaling Revert = Logical True' was inserted into the solver input file.
20:26:09    ElementDimension: 3
20:26:09    /home/wilfried/bin/gmsh/gmsh-4.4.1-Linux64/bin/gmsh
20:26:09  Solver binary path: /home/wilfried/bin/ElmerFEM_compile/20200625-elmer-dev-coordinate-scaling-revert/elmer-install/bin/ElmerGrid 
20:26:10  Solver binary path: /home/wilfried/bin/ElmerFEM_compile/20200625-elmer-dev-coordinate-scaling-revert/elmer-install/bin/ElmerSolver_mpi 
20:26:11  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:11  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:11  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:11  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:11  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
20:26:11  Traceback (most recent call last):
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 510, in slotChangedObject
    self._checkSolver(obj)
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 540, in _checkSolver
    if analysis == m.analysis and obj == m.solver:
  File "/home/wilfried/bin/FreeCAD/20200715_Freecad_sd/freecad-build/Mod/Fem/femsolver/run.py", line 309, in analysis
    return self.solver.getParentGroup()
<class 'ReferenceError'>: Cannot access attribute 'getParentGroup' of deleted object
Nevertheless, I could run the analysis and found:
  • The bounday definition is not completely right:
    wrong
    wrong
    Screenshot from 2020-07-15 20-29-33.png (240.1 KiB) Viewed 1909 times
    should look like
    right
    right
    Screenshot from 2020-07-15 20-37-53.png (259.98 KiB) Viewed 1909 times
After that I checkt the capacitance value which 2.15100E-10 F .... see also the solver output:

Code: Select all

StatElecSolve: Capacitance matrix computation performed (i,j,C_ij)
StatElecSolve:   1  1   -2.54323E-17
StatElecSolve:   1  2    2.15100E-10
StatElecSolve:   2  2    1.85587E-18
After swichting of "Calculate Capacitance Matrix" we get the correct value for the force:
StatElecForce: Resultant force : 1.025371E+02
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Elmer electrostatics FEM

Post by bernd »

would you post the correct file?
HoWil
Veteran
Posts: 1279
Joined: Sun Jun 14, 2015 7:31 pm
Location: Austria

Re: Elmer electrostatics FEM

Post by HoWil »

equation_elmer_electrostatics_elmer.zip
(207.82 KiB) Downloaded 59 times
BTW:
I was wrong in the first place... the selected faces have to look like (I was misguided by the fact that in the tutorial there is only one "Target Boundaries = 3" but this does not mean it is really only one face)
Screenshot from 2020-07-15 21-59-49.png
Screenshot from 2020-07-15 21-59-49.png (202.96 KiB) Viewed 1876 times
HoWil
Veteran
Posts: 1279
Joined: Sun Jun 14, 2015 7:31 pm
Location: Austria

Re: Elmer electrostatics FEM

Post by HoWil »

For the 5 x 5 x 7.5 (m³ or dimensionless?!) large model of the Elmer Tutorial_nonGUI_6 - Electrostatics - StatElecSolve, ElectricForce an approximated analytical solution for the force is as follows (See also nonGUI Tutorial page 30 (F = 1/2 * epsilon_0 * epsilon_r * (A/d^2) * Potentialdifference^2))

Code: Select all

import quantities as pq
print("Analytical solution for parallel plate capacitor in N: ")
A = (5*5) * pq.m**2  # alternative: A = (5*5 - 1.5*1.5) * pq.m**2
d = 1 * pq.m
F = (1./2. *  8.854e-12 *(pq.F/pq.m) * 1 * (A/d**2) * ( ( (1e6 * pq.V )**2)))
print(F.rescale(pq.N))
Results in:

Code: Select all

Analytical solution for parallel plate capacitor in N: 
110.67500000000001 N
User avatar
uwestoehr
Veteran
Posts: 4961
Joined: Sun Jan 27, 2019 3:21 am
Location: Germany
Contact:

Re: Elmer electrostatics FEM

Post by uwestoehr »

HoWil wrote: Thu May 21, 2020 1:47 pm

Code: Select all

print("Permittivity of Vacuum in mm-based units : " + str(epsilon_0.rescale((pq.A**2 * pq.s**4 / (pq.kg*pq.mm**3)))))
gives
Permittivity of Vacuum in mm-based units : 8.853999999999999e-21 s**4*A**2/(kg*mm**3)
But this is wrong for Elmer. It cost me some hours to find out why all simulations with Elmer have the wrong output.
Elmer uses pure SI units in its *.sif files. So the permittivity of vacuum must be in the *.sif file

Code: Select all

Permittivity of Vacuum = 8.8542e-12
(see for example all "case.sif" files people link in the Elmer forum: https://www.elmerfem.org/forum/viewtopic.php?t=6666 or https://www.elmerfem.org/forum/viewtopic.php?t=4373 )
User avatar
uwestoehr
Veteran
Posts: 4961
Joined: Sun Jan 27, 2019 3:21 am
Location: Germany
Contact:

Re: Elmer electrostatics FEM

Post by uwestoehr »

Fixed with: https://github.com/FreeCAD/FreeCAD/commit/29f5e7858

It took me several hours and I am now 100% sure this is the right solution. Assuring SI units enables you to exchange your case.sif files and you get sensible results. For example when applying 1.0V to a face the simulation result must be 1.0V for the face and not 1e6 or something.
For more details and the discussion that leads to the fix see this thread: https://forum.freecadweb.org/viewtopic. ... 90#p581190
Post Reply