Kozeny Carman implementation

Hello,

I can see that Kozeny-Carman equation is implemented in OGS 6 but I am still unable to figure out how to assign permeability as a variable in the input and view the results of change in permeability as an output. Can you please help me on this? Many thanks in advance.

Thanks and Regards,
Harish R

Dear Harish,

Two input parameters - initial porosity and initial medium permeability - are required to use Kozeny-Carman porosity-permeability relationship (see OGS: [case] KozenyCarman for detailed usage documentation). The ConTracer test case you mentioned has demonstrated how to use the Kozeny-Carman equation. In this test case, the required input parameters both are given under the subtree <parameters>. Please scroll down the project file to take a look.

For the time-series output of permeability change, you can do that with a slight change in the member function ComponentTransportProcess::computeSecondaryVariableConcrete (see
ProcessLib/ComponentTransport/ComponentTransportProcess.cpp · master · ogs / ogs · GitLab).

Best regards,
Renchao

Dear Mr. Lu,
I changed the member function

and I got the following error:
critical: E:/gitlab/builds/XBgsxgtH/0/ogs/ogs/ProcessLib/Output/SecondaryVariable.cpp:75 ProcessLib::SecondaryVariableCollection::get()
error: A secondary variable with internal name ‘permeability’ has not been set up.

#include “SecondaryVariable.h”

namespace ProcessLib
{
void SecondaryVariableCollection::addNameMapping(
std::string const& internal_name, std::string const& external_name)
{
// TODO check for missing secondary vars.
** // TODO check primary vars, too**
BaseLib::insertIfKeyUniqueElseError(
_map_external_to_internal, external_name, internal_name,
“Secondary variable names must be unique.”);
}

void SecondaryVariableCollection::addSecondaryVariable(
std::string const& internal_name, SecondaryVariableFunctions&& fcts)
{
if (!_configured_secondary_variables
.emplace(std::make_pair(
internal_name,
SecondaryVariable{internal_name /* TODO change */,
std::move(fcts)}))
.second)
{
OGS_FATAL(
"The secondary variable with internal name `{:s}’ has already been "
“set up.”,
internal_name);
}
}

I am not sure how to find the secondaryvariablecollection and map permeablility to internal name, can you please help me on this. Thanks in advance.

Regards,
Harish R