• Re: tolerance & error norm history

    - right - and there's no way around it
    - these error norm history is only shown for steady-state nonlinear simulations, the residual history only for specific unsaturated simulations
  • Re: Assigning recharge

    Yes, I'm sorry for the wrong name... X and Y are an arbitrary location in the model domain. fvalue is the number of the time function (pow) you have created before.
  • Re: Assigning recharge

    The simplest option would be: Create a time-varying function with these data. Then go to flow materials, use Assign - Database, Inverse distance weighting interpolation with only one neighbor, 'Edit time-varying data', type in X - Y - Number of the function for an arbitrary location in the model. Then start the interpolation. This will create a time-varying material distribution ('T-List') with this recharge distribution. The interpolation between the data points will be linear by default.
  • Re: IFM_example problem in 64-bit on dll-module load, "Unknown reason"

    To use a module in the 64-bit version of FEFLOW, you will have to do the settings for 64-bit compilation in Visual Studio. Otherwise the module can only be used in the 32-bit version of FEFLOW (which is also installed on 64-bit operating systems, see the Start - Programs - WASY menu). I have copied some text from http://blogs.msdn.com/windowssdk/archive/2007/11/13/how-to-add-64-bit-support-to-vcproj-files.aspx (for FEFLOW 5.4 we will hopefully find the time to add a step-by-step description to the pdf you mentioned):

    "How to: Add 64-bit support to .vcproj files

    Have you found a great sample in the Windows SDK but wish it could target 64-bit platforms?  Not all of our samples have 64-bit support, but it’s quick and easy to configure the sample yourself using the project configurations available in the Visual Studio Integrated Development Environment (IDE).

    To develop 64-bit applications you must install one or both of the Visual C++ 64-bit compilers.  Without these compilers on your dev machine, 64-bit project configurations will not be available in the IDE. See Installing Visual Studio 64-bit Components on MSDN for more about this.

    First, I’ll describe how to change the active project configuration to target 64-bit platforms using the Visual Studio IDE. Next, I’ll describe how to migrate Win32 project settings into a 64-bit project configuration.

    How to: set up C++ applications to target 64-bit platforms

    1.      Using Visual Studio, open the C++ project that you want to configure to target a 64-bit platform.

    2.      Open the property pages for that project. (Right-click the project node in Solution Explorer and click Properties.)
    3.      Click Configuration Manager to open the Configuration Manager Dialog Box.
    4.      Click the Active Solution Platform list, and then select the <New…> option to open the New Solution Platform Dialog Box.
    5.      Click the Type or select the new platform drop-down arrow, and then select a 64-bit platform. (64-bit platform will not be available if you don’t have a 64-bit compiler installed.) In the New Solution Platform dialog box, you can copy existing project settings into the new 64-bit project configuration using the Copy settings from option.
    6.      Click OK. The platform you selected in the preceding step will appear under Active Solution Platform in the Configuration Manager dialog box.
    7.      Click Close in the Configuration Manager dialog box, and then click OK in the <Projectname> Property Pages dialog box.

    To copy Win32 project settings into a 64-bit project configuration

      1. When the New Solution Platform dialog box is open while you set up your project to target a 64-bit platform, click the Copy settings from drop-down arrow, and then select Win32. The project settings listed below are automatically updated on the project level:

    o    /MACHINE (Specify Target Platform) is set to /MACHINE:IA64 or /MACHINE:X64.

    o    Register Output is turned OFF. For more information, see Linker Property Pages.

    o    Target Environment is set to /env x64 or /env ia64. For more information, see MIDL Property Pages: General.

    o    Validate Parameters is cleared and reset to the default value. For more information, see MIDL Property Pages: Advanced.

    o    If Debug Information Format was set to /ZI in the Win32 project configuration, then it is set to /Zi in the 64-bit project configuration. For more information, see /Z7, /Zi, /ZI (Debug Information Format).

    o    Values of WIN32 are replaced by WIN64 for /D (Preprocessor Definitions).

    Note: none of these project properties are changed if they are overridden at the file level.

    Karin Meier-Magruder

    Windows SDK Samples Program Manager"

  • Re: Well simulation in a vertical 2D density dependent flow model

    I've seen that two 'int' were missing in the code above, so I've changed it.

    Peter
  • Re: Well simulation in a vertical 2D density dependent flow model

    Dear Niels,

    here's some outline of the code as a first idea (without any checking and warranty) in C++ syntax (so you should choose C++). This code calculates the total abstraction of mass from the system at well bcs, the total injection at flux bcs (assuming there's only injecting 2nd kind bcs), and sets fixed concentrations to all the nodes of the flux bcs.

    PostTimeStep:

    int nn=IfmGetNumberOfNodes(pDoc);
    double mass = 0.;  // total mass taken from the system at well bcs
    double flow = 0.;  // total flow at 2nd kind bcs
    IfmBudget *mb = IfmBudgetMassCreate (pDoc);
    IfmBudget *fb = IfmBudgetCreate(pDoc);
    for (int i=0;i<nn;i++){
      if (IfmGetBcFlowType(pDoc, i)==IfmBC_SINGLE_WELL){
            mass = mass + IfmBudgetQueryMassAtNode (pDoc, mb, i);
      }
      else if (IfmGetBcFlowType(pDoc, i)==IfmBC_NEUMANN){
            flow = flow + IfmBudgetQueryFlowAtNode (pDoc, fb, i);
      }
    }

    IfmBudgetClose (pDoc, mb);
    IfmBudgetClose (pDoc, fb);

    for (int i=0;i<nn;i++){
      if (IfmGetBcFlowType(pDoc, i)==IfmBC_NEUMANN){
          double c = mass / flow;
          IfmSetBcMassTypeAndValueAtCurrentTime(pDoc, i,IfmBC_DIRICHLET, 0, c);
      }
    }

    Cheers,
    Peter

  • Re: Well simulation in a vertical 2D density dependent flow model

    Dear Niels Christian,

    before suggesting the one "perfect" solution, I have some additional questions:

    1. Does the mass concentration of the re-entering water have to be a function of the pumped concentration at the wells?
    2. Can evapotranspiration be calculated in advance, or does it also depend on the model properties at a certain time?

    If everything is known in advance, you could calculate the concentration at the top nodes, or the mass flux into the model on top (in the latter case using the divergence form of the transport equation!).
    If you need the dependencies, it is a little bit more complex. The only solution here would be a module for the programming interface, which calculates concentration or mass flux from the abstraction concentration and additional parameters.

    Hope this helps for the moment.

    Peter

  • Re: Exporting pressures

    This seems to be a bug - 'head' and 'pressure' both export head values. I've forwarded this to our developers and will let you know when a patch is available.
  • Re: Exporting pressures

    It is hard to find the reason for this without looking at the model... if the grid resolution of the surfer grid is coarse, it might be caused by interpolation.
  • Re: mass flux analyzer?

    No, there is no such thing as a mass flux analyzer.