Hi,
I wish to compute the abs
Hi,
I wish to compute the absolute value of a volVectorField gp componentwise. I have tried to loop over all cells: forAll(centres, celli) { if ( gp[celli].x() < 0.0 ) { gp[celli].x() = -gp[celli].x(); } if ( gp[celli].y() < 0.0 ) { gp[celli].y() = -gp[celli].y(); } if ( gp[celli].z() < 0.0 ) { gp[celli].z() = -gp[celli].z(); } } but when I take min(gp) it shows negative values. How does this work? What should I do instead? best regards |
Should be:
volVectorField g
Should be:
volVectorField gpCmptMag = cmptMag(gp); but it is not instantiated because it's not really appropriate for geometric fields. How about: vectorField gpCmptMag = cmptMag(gp.internalField()); This gives you the internal part of the field. Hrv |
abs not working for me
Quote:
I did "volVectorField U1CmptMag = Foam::cmptMag(U1);" thank you |
Quote:
Hi Dela, I am not sure if you have solved your problem or not but just in case: cmptMag is not overloaded for volVectorField as the error message informs. So to overcome this problem you can do as follows: First, define a new volVEctorField in the createFields.H like this: volVectorField cmptMagU = U; Then in the C-file you can add the following loop: forAll ( U, index ) { cmptMagU [ index ] = cmptMag ( U [ index ] ); } This should work but I advise you to be cautious about the boundary cells. I would advise to use this on internalField() and take care of the boundary separately. BR |
All times are GMT -4. The time now is 12:35. |