writing a udf for a specific body force
hi
i managed to solve a problem with matlab and now i have a matrix which consists of magnitude of a force which is applied to the particles in all of the domain. in this matrix i component is equivalent to x position and j component is equivalent to y position. now if want to write a udf to take this force file and apply it to particles as a body force. could anyone help me how to write this udf ? should i use define_dpm_body_ force or another macro? how could i read this matrix file? thanks |
Basic steps for your udf file:
1. Define a global array to contain your force. If you have a two-dimensional problem, and the matrix that you calculated is 400x600, your global array should be 400x600x2 (x2 because you need two components of the force). 2. Write a DEFINE_ON_DEMAND macro to read the contents of your data file into the global array. 3. Write a DEFINE_DPM_BODY_FORCE macro. This macro should: A. Find the location of the particle using P_POS(p). B. Calculate from the position which entry of your matrix should be used. C. Get the corresponding force from the global array. D. Assign the force to the particle. When you do the real calculation, you should first execute the DEFINE_ON_DEMAND macro, before you do the dpm calculations. In this way, the data file will only be read once, which will speed up your calculations a lot. Good luck! |
Quote:
|
That is standard programming with arrays in c. There are many websites that explain it better than I can, just google for "arrays in c".
|
All times are GMT -4. The time now is 06:29. |