getdp issues https://gitlab.onelab.info/getdp/getdp/-/issues 2021-06-07T15:28:19Z https://gitlab.onelab.info/getdp/getdp/-/issues/88 Elasticity Module - Deformed Edge Length 2021-06-07T15:28:19Z Keegan Jauch Elasticity Module - Deformed Edge Length Hi, I am applying the Onelab module to solve elastic static structural simulations. Is there a way to return the deformed length of a physical curve after GetDP runs the simulation? I have looked through the documentation and have not found a way to do this. Thanks! Keegan Hi, I am applying the Onelab module to solve elastic static structural simulations. Is there a way to return the deformed length of a physical curve after GetDP runs the simulation? I have looked through the documentation and have not found a way to do this. Thanks! Keegan https://gitlab.onelab.info/getdp/getdp/-/issues/87 {d a} instead of {curl a} in formulation 2021-05-31T14:14:03Z Theo Messin {d a} instead of {curl a} in formulation Hello, Regarding a simple understanding question: Magnetostatic formulation is usually given using the following elements: FunctionSpace { {Name Hcurl_a_3D ; Type Form1 ; ...  Formulation { Name MagStaDyn_av_js_3D ; Type FemEquation ; Quantity { { Name a ; Type Local ; NameOfSpace Hcurl_a_3D ; } ...} Equation { Galerkin { [ nu[{d a}] * Dof{d a} , {d a} ] ; In Domain ; Jacobian Vol ; Integration II ; } ... May I ask why b=curl a is called by {d a} instead of {curl a} ? I understand that {d a} is the external derivative and is equivalent to {Grad a}. Is it that a is not the magnetic vector potential but the scalar potential for the magnetic (vector) field. b = curl A holds but the relevant quantity is b = grad a? Thanks! Update - seems like as a is defined as a form1, a curl conform field, d is applied and should equivalent to curl - to be validated? ![image](/uploads/78339d76cbd2a89d629d758b09a83073/image.png) Hello, Regarding a simple understanding question: Magnetostatic formulation is usually given using the following elements: FunctionSpace { {Name Hcurl_a_3D ; Type Form1 ; ...  Formulation { Name MagStaDyn_av_js_3D ; Type FemEquation ; Quantity { { Name a ; Type Local ; NameOfSpace Hcurl_a_3D ; } ...} Equation { Galerkin { [ nu[{d a}] * Dof{d a} , {d a} ] ; In Domain ; Jacobian Vol ; Integration II ; } ... May I ask why b=curl a is called by {d a} instead of {curl a} ? I understand that {d a} is the external derivative and is equivalent to {Grad a}. Is it that a is not the magnetic vector potential but the scalar potential for the magnetic (vector) field. b = curl A holds but the relevant quantity is b = grad a? Thanks! Update - seems like as a is defined as a form1, a curl conform field, d is applied and should equivalent to curl - to be validated? ![image](/uploads/78339d76cbd2a89d629d758b09a83073/image.png) https://gitlab.onelab.info/getdp/getdp/-/issues/86 3D torque computation issue 2021-05-27T09:03:18Z Theo Messin 3D torque computation issue Hello, I am implementing a 3D model of an axial flux machine with one rotor and two stators. The example taken as reference is the static formulation in the machine_magstadyn_a.pro . In the example, the Maxwell tensor is given by: T_max[] = ( SquDyadicProduct[$1] - SquNorm[$1] * TensorDiag[0.5, 0.5, 0.5] ) / mu0 ; This is equivalent to the definition $\sigma _{ij}={\frac {1}{\mu _{0}}}B_{i}B_{j}-{\frac {1}{2\mu _{0}}}B^{2}\delta _{ij}$, and seems reusable for the 3D case. (https://en.wikipedia.org/wiki/Maxwell_stress_tensor) Then the torque is computed (see comments in code) with the following integral: $\int_S (\vec{r} \times (T_{max} \vec{n}) ) / ep$, with $ep = |S| / (2\pi r_{avg})$, where I understand that the ep term comes from the fact that the integration happens within the airgap volume (surface in 2D) instead of surface (Line in 2D). With the folowing code implementation: { Name Torque_Maxwell ; Value { Integral { [ CompZ [ XYZ[] /\ (T_max[{d a}] * XYZ[]) ] * 2*Pi*AxialLength/SurfaceArea[] ] ; In Domain ; Jacobian Vol ; Integration I1; }}} The torque is estimated over the rotor air gap and stator air gap surfaces (2D), called by Print[ Torque_Maxwell[Rotor_Airgap]... during a PostOperation. Trying to formulate the torque for the 3D case based on the stress tensor, I come up to the following solution: [ CompZ [ XYZ[] /\ (T_max[{d a}] * XYZ[]) ] * 2*Pi / GetVolume[] ] The group I pass during the function call is both air discs at the airgap between the rotor and stator. However the results seem quite wrong. Do you have any suggestion on what to change in this line? Update - Giving another try at following the given formula and replacing the surface by the volume, I would write: [ CompZ [ XYZ[] /\ (T_max[{d a}] * Unit[Vector[0, 0, Z[]]]) ] * Norm[Vector[X[], Y[], 0]] * 2 * Pi / GetVolume[] ] which I assume corresponding to $\int_S (\vec{r} \times (T_{max} \vec{n}) ) / ep$, with $ep = |V| / (2\pi r_{avg})$ or [ CompZ [ XYZ[] /\ (T_max[{d a}] * Unit[Vector[0, 0, Z[]]]) ] / HeightDisc ] which I assume corresponding to $\int_S (\vec{r} \times (T_{max} \vec{n}) ) / HeightDisc $, with $HeightDisc = |V| / |S|$ As the integration is happening in the (surrounding) volume but the surface integral is required. Knowing that both air discs are above and below the Z=0 plane, simplifying the normal to Unit[Vector[0, 0, Z[]]] ![image](/uploads/ee04bbccb2bb1fcff15b8f3d388887b1/image.png) Hello, I am implementing a 3D model of an axial flux machine with one rotor and two stators. The example taken as reference is the static formulation in the machine_magstadyn_a.pro . In the example, the Maxwell tensor is given by: T_max[] = ( SquDyadicProduct[$1] - SquNorm[$1] * TensorDiag[0.5, 0.5, 0.5] ) / mu0 ; This is equivalent to the definition $\sigma _{ij}={\frac {1}{\mu _{0}}}B_{i}B_{j}-{\frac {1}{2\mu _{0}}}B^{2}\delta _{ij}$, and seems reusable for the 3D case. (https://en.wikipedia.org/wiki/Maxwell_stress_tensor) Then the torque is computed (see comments in code) with the following integral: $\int_S (\vec{r} \times (T_{max} \vec{n}) ) / ep$, with $ep = |S| / (2\pi r_{avg})$, where I understand that the ep term comes from the fact that the integration happens within the airgap volume (surface in 2D) instead of surface (Line in 2D). With the folowing code implementation: { Name Torque_Maxwell ; Value { Integral { [ CompZ [ XYZ[] /\ (T_max[{d a}] * XYZ[]) ] * 2*Pi*AxialLength/SurfaceArea[] ] ; In Domain ; Jacobian Vol ; Integration I1; }}} The torque is estimated over the rotor air gap and stator air gap surfaces (2D), called by Print[ Torque_Maxwell[Rotor_Airgap]... during a PostOperation. Trying to formulate the torque for the 3D case based on the stress tensor, I come up to the following solution: [ CompZ [ XYZ[] /\ (T_max[{d a}] * XYZ[]) ] * 2*Pi / GetVolume[] ] The group I pass during the function call is both air discs at the airgap between the rotor and stator. However the results seem quite wrong. Do you have any suggestion on what to change in this line? Update - Giving another try at following the given formula and replacing the surface by the volume, I would write: [ CompZ [ XYZ[] /\ (T_max[{d a}] * Unit[Vector[0, 0, Z[]]]) ] * Norm[Vector[X[], Y[], 0]] * 2 * Pi / GetVolume[] ] which I assume corresponding to $\int_S (\vec{r} \times (T_{max} \vec{n}) ) / ep$, with $ep = |V| / (2\pi r_{avg})$ or [ CompZ [ XYZ[] /\ (T_max[{d a}] * Unit[Vector[0, 0, Z[]]]) ] / HeightDisc ] which I assume corresponding to $\int_S (\vec{r} \times (T_{max} \vec{n}) ) / HeightDisc $, with $HeightDisc = |V| / |S|$ As the integration is happening in the (surrounding) volume but the surface integral is required. Knowing that both air discs are above and below the Z=0 plane, simplifying the normal to Unit[Vector[0, 0, Z[]]] ![image](/uploads/ee04bbccb2bb1fcff15b8f3d388887b1/image.png) https://gitlab.onelab.info/getdp/getdp/-/issues/84 Machine_magstadyn_a and mastadyn_av_js0_3d derivation of the formulation 2021-05-26T20:09:30Z Theo Messin Machine_magstadyn_a and mastadyn_av_js0_3d derivation of the formulation Hello, **Setup:** Working on integrating the Machine_magstadyn_a or mastadyn_av_js0_3d for the simulation of a 3D electric machine. **Problem:** Difficulty understanding where the formulation comes from **Questions:** Are there any papers, personal documentation, references or similar that are available or that your could share that would explain the derivation of the 'Formulation' part of the .pro file. (Derivation from the maxwell equations to the Formulation presented in the examples)? Also, as a mean to validate my assumption: Is the Machine_magstadyn_a formulation re-usable for 3D axial/radial flux machines? Thanks in advance for your answer, Theo Update - the best I have been able to find so far is the following, for those who ask themselves the same questions :) https://www.sciencedirect.com/science/article/pii/B9780124077096000018 Multiphysics Modeling Numerical Methods and Engineering Applications Elsevier and Tsinghua University Press Computational Mechanics Series 2016, Pages 1-96 and - for simplicity of explaination - https://www.math.uh.edu/\~rohop/Fall_16/downloads/Chapter8.pdf Hello, **Setup:** Working on integrating the Machine_magstadyn_a or mastadyn_av_js0_3d for the simulation of a 3D electric machine. **Problem:** Difficulty understanding where the formulation comes from **Questions:** Are there any papers, personal documentation, references or similar that are available or that your could share that would explain the derivation of the 'Formulation' part of the .pro file. (Derivation from the maxwell equations to the Formulation presented in the examples)? Also, as a mean to validate my assumption: Is the Machine_magstadyn_a formulation re-usable for 3D axial/radial flux machines? Thanks in advance for your answer, Theo Update - the best I have been able to find so far is the following, for those who ask themselves the same questions :) https://www.sciencedirect.com/science/article/pii/B9780124077096000018 Multiphysics Modeling Numerical Methods and Engineering Applications Elsevier and Tsinghua University Press Computational Mechanics Series 2016, Pages 1-96 and - for simplicity of explaination - https://www.math.uh.edu/\~rohop/Fall_16/downloads/Chapter8.pdf https://gitlab.onelab.info/getdp/getdp/-/issues/83 Stranded conductor - simple 3D current in coil implementation 2021-06-01T16:20:26Z Theo Messin Stranded conductor - simple 3D current in coil implementation Hello, I am trying to build a 3D coil in an electric machine and to add some current in it. **Known approach:** Follow the 3D inductor.pro example, and parametrise the current for each mesh element within the 3D coil. However this is hardly scalable for more complex / various coil geometries. **My approach:** I add a plane coil_cut within the 3D coil and add some current density vectors normal to this plane. Considering that the coil is simulated as a 'conducting element', the current should be flowing throught the whole coil. **Question:** How to define a stranded coil? Meaning: How to set the coil to be conducting the current imposed but to not be affected by the possible eddy currents generated by the magnetic field in the coils? (The coil might be made out of thin copper wires, where eddy currents are negligeable) **Possible solution:** Should this happen in the "formulation" part of the script? Defining a formulation for the coil and another formulation for the rest of the machine? Hello, I am trying to build a 3D coil in an electric machine and to add some current in it. **Known approach:** Follow the 3D inductor.pro example, and parametrise the current for each mesh element within the 3D coil. However this is hardly scalable for more complex / various coil geometries. **My approach:** I add a plane coil_cut within the 3D coil and add some current density vectors normal to this plane. Considering that the coil is simulated as a 'conducting element', the current should be flowing throught the whole coil. **Question:** How to define a stranded coil? Meaning: How to set the coil to be conducting the current imposed but to not be affected by the possible eddy currents generated by the magnetic field in the coils? (The coil might be made out of thin copper wires, where eddy currents are negligeable) **Possible solution:** Should this happen in the "formulation" part of the script? Defining a formulation for the coil and another formulation for the rest of the machine? https://gitlab.onelab.info/getdp/getdp/-/issues/82 Guidance on obtaining stiffness and mass matrices 2021-05-11T02:43:36Z Alexander Shendi Guidance on obtaining stiffness and mass matrices Dear getdp folks, I need some guidance on how to obtain the stiffness and mass matrices for a linear elasticity eigenvalue problem (presumably as a postprocessing step). I need to transform them into modal coordinates. Thanks in advance! Dear getdp folks, I need some guidance on how to obtain the stiffness and mass matrices for a linear elasticity eigenvalue problem (presumably as a postprocessing step). I need to transform them into modal coordinates. Thanks in advance! https://gitlab.onelab.info/getdp/getdp/-/issues/81 Computation times on Linux aarch64 vs OpenBSD amd64 2021-05-14T12:34:55Z Alexander Shendi Computation times on Linux aarch64 vs OpenBSD amd64 Hello gentle getdp folks, I have observed rather lqrge (ca. one order of magnitude) differences in calculation times (both wall and cpu). See the attached text file for more details. The times reported are: 1. Start of program 2. After eigenvalue calculation 3. After Postprocessing 4. End of program There seems to a difference between wall clock time and cpu time during postprocessing on OpenBSD. On OpenBSD I moved the calculation directory to a RAM disk, but that didn't help much. I'm mainly looking for further hints on how to proceed with debugging the problem. I will also be glad to supply further information, if needed. Attachements: [out.001.txt](/uploads/5fb77a75e989c2dc3dc2e9c35a56e17d/out.001.txt)![OpenBSD_und_Linux](/uploads/30e2f37946800e7e1ef54a56f0de71fa/OpenBSD_und_Linux.png) Hello gentle getdp folks, I have observed rather lqrge (ca. one order of magnitude) differences in calculation times (both wall and cpu). See the attached text file for more details. The times reported are: 1. Start of program 2. After eigenvalue calculation 3. After Postprocessing 4. End of program There seems to a difference between wall clock time and cpu time during postprocessing on OpenBSD. On OpenBSD I moved the calculation directory to a RAM disk, but that didn't help much. I'm mainly looking for further hints on how to proceed with debugging the problem. I will also be glad to supply further information, if needed. Attachements: [out.001.txt](/uploads/5fb77a75e989c2dc3dc2e9c35a56e17d/out.001.txt)![OpenBSD_und_Linux](/uploads/30e2f37946800e7e1ef54a56f0de71fa/OpenBSD_und_Linux.png) https://gitlab.onelab.info/getdp/getdp/-/issues/80 rfpm 3D model - gauge condition 2021-05-10T14:23:29Z Theo Messin rfpm 3D model - gauge condition Hello, Looking at the **rfpm.pro** example (3D model of a RFPM machine), I do not understand the meaning of the **'gauge' constraint.**  // A correct spanning-tree is essential to the validity of the model. // The spanning-tree must be autosimilar by rotation on the sliding surfaces // (SubRegion2 clause, only the edges aligned with the Z axis are placed in // the tree), and be also a spanning-tree and Dirichlet and Link surfaces and // their boundaries (SubRegion clause). { Name GaugeCondition_a ; Type Assign ; Case { { Region Vol_Tree ; Value 0. ; SubRegion Region[ { Sur_Tree, Lin_Tree} ] ; SubRegion2 Region[ Sur_Tree_Sliding, AlignedWith Z ] ; } } }  What does this constraint do? Why is it needed? Would its implementation for a 3D AFM model be needed or differ? (my current implementation of it does not make sense) Thanks in advance! Regards, Theo Hello, Looking at the **rfpm.pro** example (3D model of a RFPM machine), I do not understand the meaning of the **'gauge' constraint.**  // A correct spanning-tree is essential to the validity of the model. // The spanning-tree must be autosimilar by rotation on the sliding surfaces // (SubRegion2 clause, only the edges aligned with the Z axis are placed in // the tree), and be also a spanning-tree and Dirichlet and Link surfaces and // their boundaries (SubRegion clause). { Name GaugeCondition_a ; Type Assign ; Case { { Region Vol_Tree ; Value 0. ; SubRegion Region[ { Sur_Tree, Lin_Tree} ] ; SubRegion2 Region[ Sur_Tree_Sliding, AlignedWith Z ] ; } } }  What does this constraint do? Why is it needed? Would its implementation for a 3D AFM model be needed or differ? (my current implementation of it does not make sense) Thanks in advance! Regards, Theo https://gitlab.onelab.info/getdp/getdp/-/issues/78 ARPACK96 doesn&#39;t work for eigenvalue problem (elasticity 3D modal) 2021-04-18T17:21:51Z Alexander Shendi ARPACK96 doesn't work for eigenvalue problem (elasticity 3D modal) ARPACK96 doesn't converge for me for modal elasticity 3D problem. SLEPC does. Tested on Debian Linux/aarch64 and OpenBSD-current amd64. I initially used ARPACK96, because it was available from ports for OpenBSD. ARPACK96 doesn't converge for me for modal elasticity 3D problem. SLEPC does. Tested on Debian Linux/aarch64 and OpenBSD-current amd64. I initially used ARPACK96, because it was available from ports for OpenBSD. https://gitlab.onelab.info/getdp/getdp/-/issues/77 Implement ABC or PML boundary condition 2021-04-21T07:37:18Z Jules Koenig Implement ABC or PML boundary condition Hello, I built a simple model consisting of two rectangular surfaces with different permittivities. I have placed a sinusoidal source point in the upper rectangle. I then do a temporal study of the propagation of the wave between the two media. However I find myself with unwanted reflections on the boundaries of the domain. I therefore wish to implement absorbing boundaries of ABC or PML type. I could see that these are implemented in the "AcousticScattering" project. However they are in the frequency domain and moreover the associated code is very bulky and I admit having great difficulty in adapting it to my study. Could you tell me how to implement as simply as possible one of these two absorption conditions? I have attached the source files and some screenshots of the model. I thank you in advance, KOENIG Jules [cavite.geo](/uploads/d536989e1d765a9fdd11875cbfccbfdb/cavite.geo) [cavite.pro](/uploads/f07ade8495cfac4637491108e8aa0725/cavite.pro) [DAT_cavite.dat](/uploads/8e6f746694df8cef5ff70e64555e4e2d/DAT_cavite.dat) ![Capture1](/uploads/db58f890e4048f66b28b2432f9e0756b/Capture1.JPG) ![Capture2](/uploads/6b95b1f367603528e37152c7e50efd14/Capture2.JPG) ![Capture3](/uploads/32915f6a6baeb06972a55d96e037f6e4/Capture3.JPG) Hello, I built a simple model consisting of two rectangular surfaces with different permittivities. I have placed a sinusoidal source point in the upper rectangle. I then do a temporal study of the propagation of the wave between the two media. However I find myself with unwanted reflections on the boundaries of the domain. I therefore wish to implement absorbing boundaries of ABC or PML type. I could see that these are implemented in the "AcousticScattering" project. However they are in the frequency domain and moreover the associated code is very bulky and I admit having great difficulty in adapting it to my study. Could you tell me how to implement as simply as possible one of these two absorption conditions? I have attached the source files and some screenshots of the model. I thank you in advance, KOENIG Jules [cavite.geo](/uploads/d536989e1d765a9fdd11875cbfccbfdb/cavite.geo) [cavite.pro](/uploads/f07ade8495cfac4637491108e8aa0725/cavite.pro) [DAT_cavite.dat](/uploads/8e6f746694df8cef5ff70e64555e4e2d/DAT_cavite.dat) ![Capture1](/uploads/db58f890e4048f66b28b2432f9e0756b/Capture1.JPG) ![Capture2](/uploads/6b95b1f367603528e37152c7e50efd14/Capture2.JPG) ![Capture3](/uploads/32915f6a6baeb06972a55d96e037f6e4/Capture3.JPG) https://gitlab.onelab.info/getdp/getdp/-/issues/75 Electrical machine tutorial with magnet losses computation 2021-04-19T10:44:59Z CrisBab Electrical machine tutorial with magnet losses computation Thanks for all the tutorials shared with the community: they are very useful and detailed. Among the Electrical machines tutorials, there is not a model which computes the magnet losses in time-domain simulations. Do you think it is possible to add this feature to one of the tutorials in the future release? If not, Since I've not many skills with GetDP, could you suggest which computation should be added? Thanks Thanks for all the tutorials shared with the community: they are very useful and detailed. Among the Electrical machines tutorials, there is not a model which computes the magnet losses in time-domain simulations. Do you think it is possible to add this feature to one of the tutorials in the future release? If not, Since I've not many skills with GetDP, could you suggest which computation should be added? Thanks https://gitlab.onelab.info/getdp/getdp/-/issues/74 Unicode is not recognized in path parameters 2021-03-23T16:39:18Z Raimonds Vilums Unicode is not recognized in path parameters Unicode characters are not recognized in the path to pro or mesh files ![image](/uploads/54dab7b203005ecaa4dbdfb0babe26b7/image.png) Unicode characters are not recognized in the path to pro or mesh files ![image](/uploads/54dab7b203005ecaa4dbdfb0babe26b7/image.png) https://gitlab.onelab.info/getdp/getdp/-/issues/73 magstadyn_av_js0_3d.pro 2021-03-18T07:48:10Z Aleksei Semenov magstadyn_av_js0_3d.pro Hello Dear Sirs! Unfortunately, I have not found any forums where people discuss the use of the gmsh/getdp software package, so I decide to write here. If there are forums where I can communicate with experienced users of this product, please send me link. There is a question about using gmsh/getdp for modeling problems related to the electromagnetic field (eddy current nondestructive testing of ferromagnetic products). Based on magstadyn_av_js0_3d.pro the problem was described(the exciting coil and the conducting object located in it). A-v formulation was used. The problem is solved presumably correctly, but there is a question that I could not answer. The question concerns the last integral in the Equation section for Coulomb calibration, namely Galerkin { [ Dof{d xi}, {a} ] ; In Domain ; Jacobian Vol ; Integration II ; }. Please tell me what is the meaning of this integral? I tried to change the basis functions to d{xi} or to d{v} (Galerkin { [ Dof{d xi}, {d xi} ] ;...), the problem stops being solved correctly. If I understand correctly in the case of using Coulomb calibration, the requirement div(A)=0 is added. After integrating by xi and applying Green's formula, we get the integral of (div(xi*a) – a* d xi). If homogeneous Dirichlet boundary conditions are given for xi, then a* d xi remains. Where does Dof{d xi}, {a} come from? [magstadyn_av_js0_3d_claster_.pro](/uploads/5d88f48d2d8e9f8856c67b0db9fa1787/magstadyn_av_js0_3d_claster_.pro) Hello Dear Sirs! Unfortunately, I have not found any forums where people discuss the use of the gmsh/getdp software package, so I decide to write here. If there are forums where I can communicate with experienced users of this product, please send me link. There is a question about using gmsh/getdp for modeling problems related to the electromagnetic field (eddy current nondestructive testing of ferromagnetic products). Based on magstadyn_av_js0_3d.pro the problem was described(the exciting coil and the conducting object located in it). A-v formulation was used. The problem is solved presumably correctly, but there is a question that I could not answer. The question concerns the last integral in the Equation section for Coulomb calibration, namely Galerkin { [ Dof{d xi}, {a} ] ; In Domain ; Jacobian Vol ; Integration II ; }. Please tell me what is the meaning of this integral? I tried to change the basis functions to d{xi} or to d{v} (Galerkin { [ Dof{d xi}, {d xi} ] ;...), the problem stops being solved correctly. If I understand correctly in the case of using Coulomb calibration, the requirement div(A)=0 is added. After integrating by xi and applying Green's formula, we get the integral of (div(xi*a) – a* d xi). If homogeneous Dirichlet boundary conditions are given for xi, then a* d xi remains. Where does Dof{d xi}, {a} come from? [magstadyn_av_js0_3d_claster_.pro](/uploads/5d88f48d2d8e9f8856c67b0db9fa1787/magstadyn_av_js0_3d_claster_.pro) https://gitlab.onelab.info/getdp/getdp/-/issues/70 Automatic https-forwarding not working 2021-01-26T21:10:41Z User_N Automatic https-forwarding not working When visiting getdp.info, there is no automatic forwarding to https://getdp.info/ (but let's encrypt certificate is available). And even when using https://getdp.info/ some graphic parts are not using https. When visiting getdp.info, there is no automatic forwarding to https://getdp.info/ (but let's encrypt certificate is available). And even when using https://getdp.info/ some graphic parts are not using https. https://gitlab.onelab.info/getdp/getdp/-/issues/69 Implementation of a variational formulation with boundary terms 2021-01-28T16:37:44Z Ayoub BELLOUCH Implementation of a variational formulation with boundary terms Dear ONELAB users, We encounter difficulties in the implementation of a variational formulation with boundary terms in GetDP. We want to solve an eigenmode problem for a cylindrical waveguide. The structure is invariant in θ, thus we can restrict the study to a 2D cell (see the attached png file) with an axisymmetric axis (Oy). - A quasi-periodic boundary condition is enforced on both vertical walls Γ1 and Γ2 : ![image](/uploads/dffd6071f4a0429792923704d42c7a97/image.png) (𝛾∈ℝ, the case of an evanescent mode) - A Dirichlet condition is imposed on the bottom wall Γd, - A Neumann condition is imposed on the top wall ΓN. The field perpendicular to the structure is calculated. The **Form1P** space is therefore used. The variational formulation of the problem is written as: ![image](/uploads/637fa8ec86377e696ad0a9d2d1d20342/image.png) It is known that in the cylindrical PEC case (invariance following Oy): ![image](/uploads/aa9485160871cff951575a9d893bfb92/image.png) When solving the weak formulation in GetDP, the direct implementation of walls terms using ![image](/uploads/1f3d5a2163f6c4b2b235a281c8728c0b/image.png) : Galerkin {[ Vector [0,1,0] /\ Dof {d e}, {e}]} does not give appropriate results (the term seems to have no contribution in the matrix, it is as if they do not exist). On the other hand, when we replace ![image](/uploads/1f3d5a2163f6c4b2b235a281c8728c0b/image.png) by ![image](/uploads/5cad4f64d7388c2aa1307e1703d8c149/image.png) in the formulation: Galerkin {[ -gam [] * Dof {e}, {e}]} we get the correct eigenvalue that we were looking for (f_0=2.53 GHz for γ=15) and when we export the matrix, we see the contribution of the additional terms. A comparison of the plots of ![image](/uploads/1f3d5a2163f6c4b2b235a281c8728c0b/image.png) and ![image](/uploads/5cad4f64d7388c2aa1307e1703d8c149/image.png) in PostOperation shows that they appear to be identical (when solving with the " ![image](/uploads/5cad4f64d7388c2aa1307e1703d8c149/image.png)" boundary term). The simple. geo and .pro considered for this simulation are attached. Is there something wrong in our implementation of the boundary terms ? [PEC2D.PNG](/uploads/588df3d8ff4d119f4302ba0977987443/PEC2D.PNG) [electromagnet.geo](/uploads/a88fafcc1b357a84ce862048447e1356/electromagnet.geo) [electromagnet.pro](/uploads/b49a982935bc6ebf19511c13bee464ba/electromagnet.pro) Dear ONELAB users, We encounter difficulties in the implementation of a variational formulation with boundary terms in GetDP. We want to solve an eigenmode problem for a cylindrical waveguide. The structure is invariant in θ, thus we can restrict the study to a 2D cell (see the attached png file) with an axisymmetric axis (Oy). - A quasi-periodic boundary condition is enforced on both vertical walls Γ1 and Γ2 : ![image](/uploads/dffd6071f4a0429792923704d42c7a97/image.png) (𝛾∈ℝ, the case of an evanescent mode) - A Dirichlet condition is imposed on the bottom wall Γd, - A Neumann condition is imposed on the top wall ΓN. The field perpendicular to the structure is calculated. The **Form1P** space is therefore used. The variational formulation of the problem is written as: ![image](/uploads/637fa8ec86377e696ad0a9d2d1d20342/image.png) It is known that in the cylindrical PEC case (invariance following Oy): ![image](/uploads/aa9485160871cff951575a9d893bfb92/image.png) When solving the weak formulation in GetDP, the direct implementation of walls terms using ![image](/uploads/1f3d5a2163f6c4b2b235a281c8728c0b/image.png) : Galerkin {[ Vector [0,1,0] /\ Dof {d e}, {e}]} does not give appropriate results (the term seems to have no contribution in the matrix, it is as if they do not exist). On the other hand, when we replace ![image](/uploads/1f3d5a2163f6c4b2b235a281c8728c0b/image.png) by ![image](/uploads/5cad4f64d7388c2aa1307e1703d8c149/image.png) in the formulation: Galerkin {[ -gam [] * Dof {e}, {e}]} we get the correct eigenvalue that we were looking for (f_0=2.53 GHz for γ=15) and when we export the matrix, we see the contribution of the additional terms. A comparison of the plots of ![image](/uploads/1f3d5a2163f6c4b2b235a281c8728c0b/image.png) and ![image](/uploads/5cad4f64d7388c2aa1307e1703d8c149/image.png) in PostOperation shows that they appear to be identical (when solving with the " ![image](/uploads/5cad4f64d7388c2aa1307e1703d8c149/image.png)" boundary term). The simple. geo and .pro considered for this simulation are attached. Is there something wrong in our implementation of the boundary terms ? [PEC2D.PNG](/uploads/588df3d8ff4d119f4302ba0977987443/PEC2D.PNG) [electromagnet.geo](/uploads/a88fafcc1b357a84ce862048447e1356/electromagnet.geo) [electromagnet.pro](/uploads/b49a982935bc6ebf19511c13bee464ba/electromagnet.pro) https://gitlab.onelab.info/getdp/getdp/-/issues/68 Handle modal boundary conditions 2020-12-30T19:58:47Z Christophe Geuzaine Handle modal boundary conditions Modal boundary conditions would allow to make more realistic simulations of waveguides and antennas. This issue tracks progress on this front. Modal boundary conditions would allow to make more realistic simulations of waveguides and antennas. This issue tracks progress on this front. Christophe Geuzaine Christophe Geuzaine https://gitlab.onelab.info/getdp/getdp/-/issues/65 Using and releasing deleted code from GetDP 2020-10-24T17:21:56Z Miguel Using and releasing deleted code from GetDP I have been using the MMA optimization algorithm that was once implemented in GetDP: https://gitlab.onelab.info/getdp/getdp/-/merge_requests/40/diffs . I used it to obtain results for a paper that I want to submit. For reproducibility purposes, I want to release the code that I used, including the MMA algorithm. I am wondering if the deleted code is still under the GPL license or if you guys can provide any guidance on how to license it. I have been using the MMA optimization algorithm that was once implemented in GetDP: https://gitlab.onelab.info/getdp/getdp/-/merge_requests/40/diffs . I used it to obtain results for a paper that I want to submit. For reproducibility purposes, I want to release the code that I used, including the MMA algorithm. I am wondering if the deleted code is still under the GPL license or if you guys can provide any guidance on how to license it. https://gitlab.onelab.info/getdp/getdp/-/issues/60 Magnetic flux density through airgap computation 2019-09-26T23:04:41Z Cássio Kruger krugercassio@gmail.com Magnetic flux density through airgap computation Hello guys, it's me, again! I'm working on a magnetic gear + generator model, for my final graduation project and, to prove the gear ratio of the magnetic gear, I will need to measure the flux density through a point of the airgap and perform a fast Fourier transform (FFT) to analyse it's spectrum and then prove the gear ratio. Is there any way that I can do that? If you guys know a way, PLEASE let me know!! You can e-mail me to krugercassio@gmail.com Also, you can see my model at github: https://github.com/CassioKruger/PDD1 Best regards, Cassio! Hello guys, it's me, again! I'm working on a magnetic gear + generator model, for my final graduation project and, to prove the gear ratio of the magnetic gear, I will need to measure the flux density through a point of the airgap and perform a fast Fourier transform (FFT) to analyse it's spectrum and then prove the gear ratio. Is there any way that I can do that? If you guys know a way, PLEASE let me know!! You can e-mail me to krugercassio@gmail.com Also, you can see my model at github: https://github.com/CassioKruger/PDD1 Best regards, Cassio! https://gitlab.onelab.info/getdp/getdp/-/issues/58 Variating rotor speed problem. 2019-08-01T05:43:37Z Cássio Kruger krugercassio@gmail.com Variating rotor speed problem. Hello! I'm working on some electrical machines (generators) models and I'm needing to use a variating speed at the rotor based on the actual time of the simulation. My idea is to use a velocity input that looks like a wind variation speed in order to use a frequency inverter to guarantee the 60hz output. Is there any way that I can use a variating speed at the rotor, not a constant value? Thanks in advance! Hello! I'm working on some electrical machines (generators) models and I'm needing to use a variating speed at the rotor based on the actual time of the simulation. My idea is to use a velocity input that looks like a wind variation speed in order to use a frequency inverter to guarantee the 60hz output. Is there any way that I can use a variating speed at the rotor, not a constant value? Thanks in advance! https://gitlab.onelab.info/getdp/getdp/-/issues/57 Link Constraint for Non-Identical Regions 2019-08-01T05:41:14Z Bruno de Sousa Alves Link Constraint for Non-Identical Regions Dear all, I hope this is the correct place to post a question like that. I’ve been working in a combined 1D and 2D finite element (FE) model in GetDP with a magnetic field (H) formulation and I’d like to connect the intensity of magnetic field over an edge in 2D with the boundary of a 1D FE system (see figure below). For this purpose, I’ve created two independent “FunctionSpaces” and I tried to apply a constraint of type “Link” to connect the related Degrees of Freedom. However, as each edge in the 2D system is defined by two nodes, the elements in the 2D and 1D regions are not geometrically identical (edges in 2D and nodes in 1D) and I couldn’t apply this type of constraint directly. ![Link2](/uploads/8bad1305cb113bf73c78c7abea7d8360/Link2.jpg) Thus, I was wondering if there is any way to connect them using a constraint “Link”. Maybe with the optional “FunctionRef” function, but I couldn’t figure out how it works. If possible, could you please give me an example of the application of the “Link” with “FunctionRef”? Thank you and best regards, Bruno Alves Dear all, I hope this is the correct place to post a question like that. I’ve been working in a combined 1D and 2D finite element (FE) model in GetDP with a magnetic field (H) formulation and I’d like to connect the intensity of magnetic field over an edge in 2D with the boundary of a 1D FE system (see figure below). For this purpose, I’ve created two independent “FunctionSpaces” and I tried to apply a constraint of type “Link” to connect the related Degrees of Freedom. However, as each edge in the 2D system is defined by two nodes, the elements in the 2D and 1D regions are not geometrically identical (edges in 2D and nodes in 1D) and I couldn’t apply this type of constraint directly. ![Link2](/uploads/8bad1305cb113bf73c78c7abea7d8360/Link2.jpg) Thus, I was wondering if there is any way to connect them using a constraint “Link”. Maybe with the optional “FunctionRef” function, but I couldn’t figure out how it works. If possible, could you please give me an example of the application of the “Link” with “FunctionRef”? Thank you and best regards, Bruno Alves