Interactive use of point loads

I have been trying to understand how to use the interactive version of point loads. As I understand it, the load have as many rows as the number of points you are applying the load to and the columns must be equal to the spatial dimension.
I modified one of the examples for my own problem but get errors when I try to run it: (Program & mesh file attached). If I use simple displacements as a boundary condition, it works just fine. Any help would be appreciated.
Dennis
Traceback (most recent call last): File "preambleLoadAA.py", line 105, in <module> main() File "preambleLoadAA.py", line 91, in main vec = pb.solve() File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\problem.py", line 984, in solve vec = solvers.nls(vec0, status=self.nls_status) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\solvers\nls.py", line 303, in __call__ vec_r = fun(vec_x) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\evaluate.py", line 52, in eval_residual vec_r = self.problem.equations.eval_residuals(vec) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\equations.py", line 655, in eval_residuals self.evaluate(mode='weak', dw_mode='vector', asm_obj=out) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\equations.py", line 591, in evaluate term_mode=term_mode, asm_obj=asm_obj) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\equations.py", line 824, in evaluate term.assemble_to(asm_obj, val, iels, mode=dw_mode) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\terms\terms.py", line 1483, in assemble_to dc = vvar.get_dof_conn(dc_type, ig) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\variables.py", line 1364, in get_dof_conn dc = self.adof_conns[key] KeyError: ('u', 'TopLoad', 'point', 20, False)

Hi Dennis,
On 07/28/2015 08:50 PM, Dennis Perchak wrote:
I have been trying to understand how to use the interactive version of point loads. As I understand it, the load have as many rows as the number of points you are applying the load to and the columns must be equal to the spatial dimension.
Yes.
But because you load an entire top surface anyway, I suggest to use the dw_surface_ltr term instead - there the meaning of the material parameter is clear and does not depend on the mesh resolution.
I modified one of the examples for my own problem but get errors when I try to run it: (Program & mesh file attached). If I use simple displacements as a boundary condition, it works just fine. Any help would be appreciated.
It runs ok with the current master. I have only corrected a few details related to post-processing, see the attachment. The loads seem a little bit too large :)
r.
Dennis
Traceback (most recent call last): File "preambleLoadAA.py", line 105, in <module> main() File "preambleLoadAA.py", line 91, in main vec = pb.solve() File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\problem.py", line 984, in solve vec = solvers.nls(vec0, status=self.nls_status) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\solvers\nls.py", line 303, in __call__ vec_r = fun(vec_x) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\evaluate.py", line 52, in eval_residual vec_r = self.problem.equations.eval_residuals(vec) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\equations.py", line 655, in eval_residuals self.evaluate(mode='weak', dw_mode='vector', asm_obj=out) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\equations.py", line 591, in evaluate term_mode=term_mode, asm_obj=asm_obj) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\equations.py", line 824, in evaluate term.assemble_to(asm_obj, val, iels, mode=dw_mode) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\terms\terms.py", line 1483, in assemble_to dc = vvar.get_dof_conn(dc_type, ig) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\variables.py", line 1364, in get_dof_conn dc = self.adof_conns[key] KeyError: ('u', 'TopLoad', 'point', 20, False)

I still get the same error. I am running sfepy 2014.4 as that is the most recent version in the Enthought Python Distribution.
Given that you are correct that I should probably use the dw_surface_ltr term I'll try that. I am still just playing around with things (which is why the load was too high - the numbers are made up).
Dennis
On Tuesday, July 28, 2015 at 11:50:23 AM UTC-7, Dennis Perchak wrote:
I have been trying to understand how to use the interactive version of point loads. As I understand it, the load have as many rows as the number of points you are applying the load to and the columns must be equal to the spatial dimension.
I modified one of the examples for my own problem but get errors when I try to run it: (Program & mesh file attached). If I use simple displacements as a boundary condition, it works just fine. Any help would be appreciated.
Dennis
Traceback (most recent call last): File "preambleLoadAA.py", line 105, in <module> main() File "preambleLoadAA.py", line 91, in main vec = pb.solve() File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\problem.py", line 984, in solve vec = solvers.nls(vec0, status=self.nls_status) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\solvers\nls.py", line 303, in __call__ vec_r = fun(vec_x) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\evaluate.py", line 52, in eval_residual vec_r = self.problem.equations.eval_residuals(vec) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\equations.py", line 655, in eval_residuals self.evaluate(mode='weak', dw_mode='vector', asm_obj=out) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\equations.py", line 591, in evaluate term_mode=term_mode, asm_obj=asm_obj) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\equations.py", line 824, in evaluate term.assemble_to(asm_obj, val, iels, mode=dw_mode) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\terms\terms.py", line 1483, in assemble_to dc = vvar.get_dof_conn(dc_type, ig) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\variables.py", line 1364, in get_dof_conn dc = self.adof_conns[key] KeyError: ('u', 'TopLoad', 'point', 20, False)

On 07/29/2015 05:35 PM, Dennis Perchak wrote:
I still get the same error. I am running sfepy 2014.4 as that is the most recent version in the Enthought Python Distribution.
OK.
Given that you are correct that I should probably use the dw_surface_ltr term I'll try that. I am still just playing around with things (which is why the load was too high - the numbers are made up).
Let us know how it goes then.
But note that several bugs affecting the interactive usage has been fixed between 2014.4 and the current git version, so I advise you to update.
r.
Dennis
On Tuesday, July 28, 2015 at 11:50:23 AM UTC-7, Dennis Perchak wrote:
I have been trying to understand how to use the interactive version of point loads. As I understand it, the load have as many rows as the number of points you are applying the load to and the columns must be equal to the spatial dimension.
I modified one of the examples for my own problem but get errors when I try to run it: (Program & mesh file attached). If I use simple displacements as a boundary condition, it works just fine. Any help would be appreciated.
Dennis
Traceback (most recent call last): File "preambleLoadAA.py", line 105, in <module> main() File "preambleLoadAA.py", line 91, in main vec = pb.solve() File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\problem.py", line 984, in solve vec = solvers.nls(vec0, status=self.nls_status) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\solvers\nls.py", line 303, in __call__ vec_r = fun(vec_x) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\evaluate.py", line 52, in eval_residual vec_r = self.problem.equations.eval_residuals(vec) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\equations.py", line 655, in eval_residuals self.evaluate(mode='weak', dw_mode='vector', asm_obj=out) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\equations.py", line 591, in evaluate term_mode=term_mode, asm_obj=asm_obj) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\equations.py", line 824, in evaluate term.assemble_to(asm_obj, val, iels, mode=dw_mode) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\terms\terms.py", line 1483, in assemble_to dc = vvar.get_dof_conn(dc_type, ig) File "C:\Users\l620546\AppData\Local\Enthought\Canopy\User\lib\site-packages\s fepy\discrete\variables.py", line 1364, in get_dof_conn dc = self.adof_conns[key] KeyError: ('u', 'TopLoad', 'point', 20, False)
participants (2)
-
Dennis Perchak
-
Robert Cimrman